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

时间:2015-09-24 10:44:53

标签: 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++){
       TextField field = new TextField();
       field.setBound(10,sum,107,22);
       Panel.add(field);
       sum += 28;
       }
   }
});

但我无法编写任何成功的代码来获取textFields的值。

1 个答案:

答案 0 :(得分:6)

您的问题是访问引用的问题 - 这意味着,一旦您创建了对象,您就没有简单的方法可以在需要时获得适当的引用。解决方案是使用诸如ArrayList<TextField>之类的集合作为类的字段,然后将创建的对象放入此集合中。然后如果你需要它们,你可以轻松地从集合中获取它们。

一些侧面建议:

  • 为什么AWT组件而不是Swing?换句话说,使用ArrayList<JTextField>并用JTextFields填充它,而不是TextFields。
  • 避免使用setBounds(...)null布局,因为这会使非常不灵活的GUI在某个平台上看起来不错,而在大多数其他平台或屏幕分辨率上看起来很糟糕很难更新和维护。

  • 避免&#34;魔法&#34;数字,例如此处的硬编码数字:field.setBound(10,sum,107,22);

  • 请改用布局管理器。
  • 您需要学习并使用Java naming conventions。变量名都应以较低的字母开头,而类名以大写字母开头。了解并遵循这一点将使我们能够更好地理解您的代码,并使您能够更好地理解其他代码。