增加退出保存确认
This commit is contained in:
@@ -30,10 +30,18 @@ public class ImageDotMarker extends JFrame {
|
||||
public ImageDotMarker() {
|
||||
setTitle("图片标点工具");
|
||||
setSize(1200, 800);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // 先不自动退出
|
||||
setLayout(new BorderLayout());
|
||||
// 设置窗口在屏幕中心显示
|
||||
setLocationRelativeTo(null);
|
||||
|
||||
// 添加窗口关闭监听器
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
confirmExit();
|
||||
}
|
||||
});
|
||||
|
||||
// 只保留工具栏
|
||||
createToolbar();
|
||||
@@ -104,7 +112,7 @@ public class ImageDotMarker extends JFrame {
|
||||
|
||||
JButton exitBtn = new JButton("退出");
|
||||
exitBtn.setToolTipText("退出程序");
|
||||
exitBtn.addActionListener(e -> System.exit(0));
|
||||
exitBtn.addActionListener(e -> confirmExit());
|
||||
|
||||
toolBar.add(helpBtn);
|
||||
toolBar.add(aboutBtn);
|
||||
@@ -237,6 +245,24 @@ public class ImageDotMarker extends JFrame {
|
||||
updateStatusBar("已添加标记点: " + points.size());
|
||||
}
|
||||
|
||||
private void confirmExit() {
|
||||
// 检查是否有已标记的点
|
||||
if (!points.isEmpty()) {
|
||||
int confirm = JOptionPane.showConfirmDialog(this,
|
||||
"您有未保存的标记点。确定要退出程序吗?",
|
||||
"确认退出",
|
||||
JOptionPane.YES_NO_OPTION,
|
||||
JOptionPane.WARNING_MESSAGE);
|
||||
|
||||
if (confirm == JOptionPane.YES_OPTION) {
|
||||
System.exit(0);
|
||||
}
|
||||
} else {
|
||||
// 如果没有标记点,直接退出
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
private void updateStatusBar(String message) {
|
||||
// 直接使用类成员变量,避免查找和类型转换错误
|
||||
JLabel statusLabel = (JLabel) statusPanel.getComponent(0);
|
||||
|
||||
Reference in New Issue
Block a user