java等待按钮点击继续程序
一般来说,我对GUI是新手。我想做一个,让用户输入。之后,应在对象中进一步处理该输入
这是我的objectClass
public class AnObject {
private String property;
public AnObject(){}
public String getProperty() {return property;}
public void setProperty(String property) {this.property = property;}
}
我的带有main和gui
方法的MainClass
public class MainClass {
public static void main(String[] args) {
AnObject anObject = new AnObject();
gui(anObject);
System.out.println(anObject.getProperty()); //always null
}
public static void gui(AnObject anObject){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
JButton button = new JButton("ok");
JTextField textField = new JTextField(20);
panel.add(button);
panel.add(textField);
frame.add(panel);
frame.setVisible(true);
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
anObject.setProperty(textField.getText());
System.out.println(anObject.getProperty()); //Input
frame.dispose();
}
});
}
}
我的输出总是
null
//input from gui
按这个顺序。我想我的输入速度太慢了,我怎么能让程序等我呢
# 1 楼答案
你必须让方法等待——所有方法一旦完成就会返回
这个(gui)将在设置gui(即添加按钮)后返回
因此,添加一个
在方法的末尾。这样,当帧被释放时(输入值并按下按钮后),方法将退出
然而,这种方式是危险的编程——没有明显的原因而搁置一种方法
但如果这是你想要的,这就是你必须做的