我想将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);
}
}
我应该怎么做才能将值存储到局部变量中,以便可以从其他包中获取值
答案 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值的类将实现它。