请任何人帮我解决我的这个代码.我正在开发一个需要动态创建文本字段的项目,虽然我能够创建文本字段但是我无法获得需要存储在数组中的用户输入.这是我使用的代码;
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;
}
}
});
Run Code Online (Sandbox Code Playgroud)
但我无法编写任何成功的代码来获取textFields的值.
您的问题是访问引用的问题 - 这意味着,一旦您创建了对象,您就没有简单的方法可以在需要时获得适当的引用.解决方案是使用集合(例如作为ArrayList<TextField>类的字段),然后将创建的对象放入此集合中.然后如果你需要它们,你可以轻松地从集合中获取它们.
一些侧面建议:
ArrayList<JTextField>并用JTextFields填充它,而不是TextFields.避免setBounds(...)和null布局,因为这使得非常不灵活的GUI,虽然它们在一个平台上看起来很好,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护.
避免使用"魔术"数字,例如硬编码数字: field.setBound(10,sum,107,22);