java查看是否从父类单击了JButton
我正在进行一个项目,因为我正在管理主类中的多个窗口。从标题中可以看出,我对windows中的JButtons有一个问题。 主方法将等待按下一个特定按钮:
public static void main(String[] args){
ButtonWindow bw = new ButtonWindow();
while(bw.buttonClicked() == false);
System.out.println("ok cool");
}
同时,按钮的ActionListener将触发布尔值d(buttonClicked()方法返回的值)设置为true
public boolean d = false;
public ButtonWindow(){
JPanel cp;
JButton b;
setContentPane(cp = new JPanel());
cp.add(b = new JButton("Click me"));
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
d = true;
}
});
setSize(200, 200);
setVisible(true);
}
public boolean buttonClicked() {
return d;
}
现在,主方法似乎卡在while循环中。既然“d”已经更改了(我用一个额外的“System.out.println”(“+d”)签入了它),这怎么可能呢在按钮的ActionListener中)
提前谢谢
哦,还有,有没有更聪明的方法?我不认为不断地调用这个方法是最实际的事情,真的
# 1 楼答案
你应该这样做:
及
第二种方法:-
使
flag
变量静态,创建新的线程类,并使用持续检查类flag
变量值的线程循环。您还可以将flag
变量设置为实例变量,但在这种情况下,必须跨线程共享对象ref# 2 楼答案
应用程序应该只有一个JFrame和应用程序的主窗口
对于辅助窗口,通常使用
modal JDialog
。直到对话框关闭,执行才会继续在许多情况下,您可以使用JOptionPane来管理对话框。阅读Swing教程中关于How to Make Dialogs的部分以了解更多信息