一般来说,我是GUI的新手。我想制作一个,要求用户输入。此后应在对象中进一步处理此输入。
这是我的objectClass
。
public class AnObject {
private String property;
public AnObject(){}
public String getProperty() {return property;}
public void setProperty(String property) {this.property = property;}
}
我的MainClass
使用main和gui
方法:
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
按此顺序。我想我输入的速度太慢了,如何让程序等我呢?
答案 0 :(得分:1)
您必须让方法等待-完成后所有方法都将返回。
设置了gui(即添加按钮)后,该(gui)将返回。
因此添加一个
while(frame.isDisplayable()) try { Thread.sleep(1000); } catch (Exception e) {}
方法末尾的。这样,在放置框架时(输入值并按下按钮后),方法将退出。
但是,这种方式很危险,编程-没有明显的理由阻止方法。
但是,如果这是您想要的,这就是您必须要做的。