0

我已经使用 Netbeans IDE 7.3 和 Design Inerface 创建了多个 JtextField,并且我已经存储了在字符串数组中创建的所有对象名称。我想创建一个循环来读取所有 JTextField 中包含的文本,以便打印所有字段。

例如:

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") 转换为对已定义对象的调用。

4

1 回答 1

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());
            }
        }
    }
于 2013-05-07T16:33:36.707 回答