任何人都可以帮我解决这个问题。我正在开发一个需要动态创建文本字段的项目,虽然我能够创建文本字段但是我无法获得需要存储在数组中的用户输入。这是我使用的代码;
Public void actionPerformed(ActionEvent e){
String value = textField.getText();
int values = Integer.parseInt(value);
int sum = 10;
for(int I=0; I < values; I++){
TextField field = new TextField();
field.setBound(10,sum,107,22);
Panel.add(field);
sum += 28;
}
}
});
但我无法编写任何成功的代码来获取textFields的值。
答案 0 :(得分:6)
您的问题是访问引用的问题 - 这意味着,一旦您创建了对象,您就没有简单的方法可以在需要时获得适当的引用。解决方案是使用诸如ArrayList<TextField>
之类的集合作为类的字段,然后将创建的对象放入此集合中。然后如果你需要它们,你可以轻松地从集合中获取它们。
一些侧面建议:
ArrayList<JTextField>
并用JTextFields填充它,而不是TextFields。避免使用setBounds(...)
和null
布局,因为这会使非常不灵活的GUI在某个平台上看起来不错,而在大多数其他平台或屏幕分辨率上看起来很糟糕很难更新和维护。
避免&#34;魔法&#34;数字,例如此处的硬编码数字:field.setBound(10,sum,107,22);