2015-08-05 4 views
0

Мне нужно сохранить текстовый экран каждый раз, когда я нажимал кнопку SAVE. Итак, в настоящее время я выполняю метод getText(). Это так страдает, потому что у меня много текстового поля для сохранения. Более того, я хочу сохранить textField.getText() в текстовый файл.Простой способ получения текста всего JtextField

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, таких как

тс [J] = TextField [I] .getText(); ?

+1

[Введение в JAXB] (https://docs.oracle.com/javase/tutorial/jaxb/intro/) И я бы научиться, очень быстро, чтобы обойтись без 'static' – MadProgrammer

ответ

1

Можно создать массив JTextField. Но вы должны знать об ошибках - даже если вы объявили массив JTextField, в массиве нет объекта JTextField. Вам нужно построить каждый объект JTextField, когда вы инициализируете массив. how to create an Array of JTextField

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(); 
     } 

    } 
} 
Смежные вопросы