Как сохранить значение из JTextField в локальной переменной? - PullRequest
0 голосов
/ 06 июля 2019

Я хочу сохранить значение из TextField в локальной переменной, чтобы я мог получить значение по ссылке на него из другого пакета

Я попытался решить эту проблему самостоятельно, но нашел значение null.

private JButton execute = new JButton("Execute");
public JTextField radius = new JTextField(5);


    // Find the result.
    gc.gridx = 2;
    gc.gridy = 3;
    gc.weightx = 1;
    gc.weighty = 1;
    add(execute, gc);

    List<MainController> listeners = new ArrayList<MainController>();
    execute.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            for (MainController listener : listeners) {
                listener.notify(radius.getText());
            }
        }
    });
    add(execute, gc);

и ниже приведен класс, который я хочу получить значение

public class MainController extends JFrame {

private int radius;
private static final long serialVersionUID = 1L;

public void notify(String rad) {
    radius = Integer.parseInt(rad);
    System.out.println(radius);
}

}

Что я должен сделать, чтобы сохранить значение в локальной переменной, чтобы я мог получить значение из другого пакета

1 Ответ

0 голосов
/ 06 июля 2019

Из кода, который у вас есть, я понимаю, что когда вы нажимаете кнопку, вы хотите сохранить текст в радиусе локальной переменной strRad, чтобы впоследствии вы могли получить к ней доступ из другого класса. Если это так, то вы можете создать шаблон слушателя самостоятельно, а затем получить что-то вроде:

private List<YourListener> listeners = new ArrayList<>(); 
.
.
.
execute.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        for (YourListener listener : listeners) {
           listener.notify(radius.getText());
        }
    }
});

Вы должны создать интерфейс YourListener, который бы реализовал другой класс, который хочет получить доступ к значению JTextField.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...