我是初学者,并不熟悉Java,所以解决方案可能很简单。
我有一个包含main
方法的MainClass。这个MainClass创建一个JFrame,里面可以有各种JPanel。我有一个名为CommandInput的类,它创建一个包含JTextArea的JPanel。现在我希望当用户关闭MainClass的JFrame时,它会询问是否要保存更改。由于JFrame中的JPanels各不相同,我真的不想在MainClass中包含它。我知道像CommandInput这样的每个“SubClass”都可以将windowListener
添加到MainClass的JFrame中,但这对我来说似乎并不高效:
public class CommandInput {
public CommandInput(JFrame mainFrame) {
mainFrame.addWindowListener(new java.awt.event.WindowAdapter() {
@Override //Overwrites the normal behavior of this method
public void windowClosing(java.awt.event.WindowEvent windowEvent) {
System.out.println("Closing Event triggered and detected by CommandInput object");
}
});
}
}
我是否应该在MainClass中使用一个WindowAdapter
并将此代码添加到其windowClosing
方法中?如果是这样,我该怎么做?
答案 0 :(得分:0)
可能你需要这个
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
int choice = JOptionPane.showConfirmDialog(null, "Save changes?");
if(choice==0) System.exit(0);
}
});