当用户单击关闭按钮或其他表示退出的JButton时,我必须在xml中保存程序的状态。我有它所以它在Window关闭时使用WindowListener运行它运行它。但这仅在您单击红色X关闭按钮时有效,但在您有另一个按钮时则无效。我可以在actionListener for system中执行System.exit(0)之前运行它,但是我需要信息的一些类没有来自那个地方的访问权。
这是为了框架。
frame.addWindowListener(new WindowListener(){
public void windowActivated(WindowEvent arg0){}
public void windowClosed(WindowEvent arg0){}
public void windowClosing(WindowEvent arg0)
{
myScreen.write.writeToXmlFile(myScreen.pics, myScreen.row, myScreen.col);
}
public void windowDeactivated(WindowEvent arg0){}
public void windowDeiconified(WindowEvent arg0){}
public void windowIconified(WindowEvent arg0){}
public void windowOpened(WindowEvent arg0){}
});
这是按钮中的代码。
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
我无法从包含按钮的类中访问myScreen。
答案 0 :(得分:2)
I do not have access to myScreen from the class that has button in it.
JButton#doClick();可以做到这一点
但正确的方式也可能(也许)
public void windowClosing(WindowEvent arg0)
第一。无效或类
create screenshot
2.nd void or class
setVisible(false) for Top-Level Container(s)
第3次无效或上课
save applications states
第4次无效或上课
System.exit()
确定你可以将所有4个空洞(类)放到一个空格中,但是在一个例子中,代码只是更加清晰和可读