Java 如何获取动态创建的文本字段的值

Java 如何获取动态创建的文本字段的值,java,arrays,swing,arraylist,Java,Arrays,Swing,Arraylist,请任何人帮我把这个密码写出来。我正在处理一个需要动态创建文本字段的项目,虽然我能够创建文本字段,但无法获得需要存储在数组中的用户输入。这是我使用的代码 Public void actionPerformed(ActionEvent e){ String value = textField.getText(); int values = Integer.parseInt(value); int sum = 10; for(int I=0; I < values; I+

请任何人帮我把这个密码写出来。我正在处理一个需要动态创建文本字段的项目,虽然我能够创建文本字段,但无法获得需要存储在数组中的用户输入。这是我使用的代码

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;
       }
   }
});
Public void actionPerformed(ActionEvent e){
字符串值=textField.getText();
int values=Integer.parseInt(值);
整数和=10;
对于(int I=0;I

但是我无法编写任何成功的代码来获取文本字段的值。

您的问题是访问引用——这意味着,一旦创建了对象,您就无法在需要时获得对它的适当引用。解决方案是使用集合(如
ArrayList
)作为类的字段,然后将创建的对象放入该集合中。之后,如果您需要它们,您可以很容易地从集合中获取它们

一些附带建议:

  • 为什么AWT组件不摆动?换句话说,使用
    ArrayList
    并用JTextFields而不是TextFields填充它
  • 避免
    setBounds(…)
    null
    布局,因为这会导致非常不灵活的GUI,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护

  • 避免使用“魔法”数字,如此处的硬编码数字:
    field.setBound(10,sum,107,22)

  • 改用布局管理器
  • 你会想要学习和使用。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习这一点并遵循这一点可以让我们更好地理解您的代码,也可以让您更好地理解其他人的代码

您的问题是访问引用——这意味着,一旦您创建了对象,您就无法在需要时获得一个合适的引用。解决方案是使用集合(如
ArrayList
)作为类的字段,然后将创建的对象放入该集合中。之后,如果您需要它们,您可以很容易地从集合中获取它们

一些附带建议:

  • 为什么AWT组件不摆动?换句话说,使用
    ArrayList
    并用JTextFields而不是TextFields填充它
  • 避免
    setBounds(…)
    null
    布局,因为这会导致非常不灵活的GUI,虽然它们在一个平台上看起来不错,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护

  • 避免使用“魔法”数字,如此处的硬编码数字:
    field.setBound(10,sum,107,22)

  • 改用布局管理器
  • 你会想要学习和使用。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习这一点并遵循这一点可以让我们更好地理解您的代码,也可以让您更好地理解其他人的代码

非常感谢您的回复我非常感谢您的回复我发布的代码中有一个错误。假设它是panel.add(field);对于for(int i=0;我非常感谢你的回答)我发布的代码中有一个错误。它应该是panel.add(field);对于for(int i=0;i)也是一样