如何将值从JTextField存储到局部变量?

时间:2019-07-06 05:48:16

标签: java

我想将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 :(得分:0)

从您拥有的代码中,我了解到,当您按下按钮时,您想将文本保存在半径为局部变量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值的类将实现它。