获取所有JtextField文本的简单方法

时间:2015-08-05 07:19:29

标签: java swing persistence jtextfield

每次单击SAVE按钮时我都要保存textField。所以,目前我正在使用getText()方法..它很痛苦,因为我有很多textField要保存。而且,我想将textField.getText()保存到文本文件中。

public static String tf20;
public static String tf21;
public static String tf22;
public static String tf23;
public static String tf24; 

public static JTextField textField_20;
public static JTextField textField_21;
public static JTextField textField_22;
public static JTextField textField_23;
public static JTextField textField_24;    

tf20=textField_20.getText();//Is there any simple method? 
tf21=textField_21.getText();
tf22=textField_22.getText();
tf23=textField_23.getText();
tf24=textField_24.getText();

我的问题是,是否有任何简单的方法来获取所有textField的文本,例如

  

TF [J] = TextField的[I] .getText(); ?

2 个答案:

答案 0 :(得分:1)

可以创建一个JTextField数组。但是你应该知道错误 - 即使你声明了一个JTextField数组,数组中也没有JTextField对象。初始化数组时,需要构造每个JTextField对象。 how to create an Array of JTextField

答案 1 :(得分:0)

简单的例子:

public class Test {

    JTextField[] allTextFields;

    public Test() {
        allTextFields = new JTextField[]{
            new JTextField("Text 1"),
            new JTextField("Text 2"),
            new JTextField("Text 3"),
            new JTextField("Text 4"), //...
        };

        //...
        for (JTextField jTextField : allTextFields) {
            String currentText = jTextField.getText();
        }

    }
}

您还可以创建某种地图,它会存储对<String, JTextField>,这样您就可以轻松访问特定的文本字段(map.getValue("TXT_A"))并遍历所有字段:

public class Test {

    private Map<String, JTextField> map = new HashMap<String, JTextField>();

    public Test() {
        map.put("TXT_1", new JTextField());
        map.put("TXT_2", new JTextField());
        map.put("TXT_3", new JTextField());
        // etc...

        // Access:
        String value = map.get("TXT_1").getText();

        // Iteration:
        for (Map.Entry<String, JTextField> entry : map.entrySet()) {
            JTextField currentTextField = entry.getValue();
            String currentString = currentTextField.getText();
        }

    }
}