Java - Как установить имя переменной / идентификатора для разных полей JTextFields? - PullRequest
0 голосов
/ 17 июня 2020

Я создал фрейм и 2 панели в Java, на первой панели есть несколько кнопок, а на другой панели будут отображаться новые текстовые поля. После создания этих текстовых полей. Я хочу получить текст в каждом текстовом поле, но я не знаю, как получить каждый текст, если у меня нет определенного c имени переменной для каждого из них.

public class GUIListener implements ActionListener{
        @Override
        public void actionPerformed(ActionEvent e){
            if(e.getSource()==boton2){
                System.out.println("boton 2");
                takeData();
            }else if(e.getSource()==boton3){
                System.out.println("boton 3");
                createTextFields(4);
            }
        }
    }

    public void createTextFields(int quantity){

        panel2.removeAll();
        for(int i =0;i<quantity;i++){
            texto = new JTextField("TF # "+i);
            panel2.add(texto);
        }
        panel2.validate();
        panel2.repaint();
    }

    public void takeData(){
        System.out.println(texto.getText());   
        //Only prints the text of the last textfield created
    }

1 Ответ

0 голосов
/ 17 июня 2020

Сохранить все JTextField в коллекции или массиве и вернуть их.

public JTextField[] createTextFields(int quantity) {
    panel2.removeAll();
    JTextField[] textFields = new JTextField[quantity];
    for(int i =0;i<quantity;i++) {
        texto = new JTextField("TF # "+i);
        panel2.add(texto);
        textFields[i] = texto;
    }
    panel2.validate();
    panel2.repaint();
    return textFields;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...