我使用Netbeans IDE 7.3创建了多个JtextField,使用了Design Inerface,并且我已经存储了在字符串数组中创建的所有对象名称。 我想创建一个循环来读取所有JTextFields中包含的文本,以便打印所有字段。
例如:
I have automatically created:
class.javax.swing.JTextField a_field;
class.javax.swing.JTextField b_field;
class.javax.swing.JTextField a_value;
class.javax.swing.JTextField b_value;
*(实际上,我有超过50个字段,而不仅仅是“a”和“b”)
我已在字符串数组中列出了所有内容
String[] allTextFields={"a","b"};
我想做的是这样的事情:
for(int i=0 ; i<allTextFields.length() ; i++){
String field = (allTextFields[i]+"_field").getText();
String value = (allTextFields[i]+"_value").getText();
System.out.println(field + " has value: " + value);
}
因为它们已经被创建,所以我不能将它们声明为JTextFields的数组......所以,我需要的是将字符串:(allTextFields [i] +“_ field”)转换为对已定义对象的调用
答案 0 :(得分:0)
将您的文本字段放入JPanel,然后您可以将所有组件放入JPanel
例如:
JPanel panel1 = new JPanel();
add(panel1);
JTextField field1 = new JTextField("field1");
field1.setName("field1");
panel1.add(field1);
JTextField field2 = new JTextField("field2");
field2.setName("field2");
panel1.add(field2);
Component[] components = panel1.getComponents();
if (null != components) {
for (Component component : components) {
if (component instanceof JTextField) {
System.out.println(((JTextField)component).getText());
}
}
}