Как забрать данные из JTextField по нажатию кнопки.

0
12 авг 2017 11:22
Доброе время суток ! Прошу помощи разобраться и какую информацию нужно прочитать чтобы не допускать больше таких ошибок .
Ситуация следующая хочу забрать данные из JTextField когда нажимаю кнопку, вот часть кода :

                 //////////////////////////Текстовое поле
                JTextField tf = new JTextField(10);
                tf.setToolTipText("))");
                tf.setBounds(75 ,30,125 ,22);
                add(tf);

                ////////////////////////////Слушатель действий
                ClassObrabotka obrabotka = new ClassObrabotka();
                b2.addActionListener(obrabotka);

                }

                 private class ClassObrabotka implements ActionListener{
                    public void actionPerformed(ActionEvent event){
                        String string = "";
                        GUI_Alg a= new GUI_Alg();
                        string = a.tf.getText();

            }

        }
    }

Программа компилируется, но по нажатию кнопки Джава даёт мне по щам ошибкой потока.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
Скажите пожалуйста , что я делаю не так ?

Ответов: 2

0
13 авг 2017 13:09
Я разобрался вчера всё таки. Проблема была в том что нужно было JTextField tf; делать глобальной переменной . Ведь именно тогда эту переменную можно использовать в других методах )
Если не делать глобальную переменную то можно внутри конструктора :


 b1.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
       String string = tf.getText();
 }); 




0
12 авг 2017 18:16
непонятно что тут делается.. почему ты решил что, тот объект, куда выполняется
add(tf);

и
a.tf.getText();

это одно и тоже ?!

тут все просто должно быть после
add(tf)

должно быть просто создание кнопки
b2.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
    System.out.println(tf.getText()); // вероятно, для этого tf должен быть final
  }
});
Модераторы: Нет
Сейчас эту тему просматривают: Нет