Доступ к тексту JTextField - PullRequest
0 голосов
/ 29 мая 2019

У меня есть простая программа, я пытаюсь получить доступ к данным из текстового поля, но я всегда получаю пустое или пустое поле.

Для примера.

public class income {   
JButton save = new JButton("save");

  public JTextField setIncomeValue() {
  ..
  ..
    JTextField incomeValue = new JTextField(10);
    return incomeValue;
  }

  public void launch_Ui{
   frame.add(setIncomeValue());
   frame.add(save);
   save.addactionlistener(new saveListener());
  }
}

class saveListener  implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        String test = new income().setIncomeValue().getText();
        System.out.println("savings...  " + test + " value ?");
    }

}

Кто-нибудь имеет какие-либо идеи или наткнулся на этот вызов раньше?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Обновление

После тщательного изучения моей логики я наконец-то нашел решение.
Что я сделал, так это создал область внутри моего savelistener.

class saveListener implements ActionListener{

JTextField incomeData;

public saveListener(JTextField incomeData) {
    this.incomeData = incomeData;
 }

 @Override
 public void actionPerformed(ActionEvent e) {
 String test = incomeData.getText();
    System.out.println("Input data " + test);
  }
}

Надеюсь, это поможет тем, кто в ней нуждается:)

0 голосов
/ 29 мая 2019

Вы создаете новый объект при каждом вызове setIncomeValue(), поэтому вы получаете null каждый раз.

Добавьте члена JTextField рядом с вашим JButton save и сохраните ссылку на первый setIncomeValue():

JButton save = ...;
JTextField income = setIncomeValue(); // Created once
...

class SaveListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
        String test = income.getText();
        ...
    }
}

Это сработает, потому что SaveListener является внутренним классом класса Income (пожалуйста, используйте заглавные буквы для имен классов) и, следовательно, имеет доступ к членам своего родительского класса.

...