我正在构建一个文本编辑器,我不知道如何在Swing退出按钮上处理一个监听器,这是自动创建的。 我想在用户不保存文件时使用对话框,例如按退出按钮。
答案 0 :(得分:1)
final JFrame f = new JFrame("Good Location & Size");
// make sure the exit operation is correct.
f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
f.addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent we) {
// pop the dialog here, and if the user agrees..
System.exit(0);
}
});
如此answer to Best practice for setting JFrame locations所示,它将帧位置和序列序列化。退出前的大小。
答案 1 :(得分:0)
逐步进行:
saved
并将其默认值设置为false。true
,请退出,否则,提示用户保存文件。所以,最后这段代码如下:
public boolean saved = false;
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
saved = true;
//Code to save file
}
});
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(saved)
System.exit(0);
else {
//Code to prompt user to save file
}
}
});
答案 2 :(得分:0)
假设您的窗口有句柄,假设它是Window
对象(例如JFrame
或其他类型的窗口),您可以收听WindowEvent
个事件。以下是windowClosed
的示例,如果您之前需要拦截它,可以将其替换为windowClosing
。
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
// do something here
}
});