在Java Swing中,可以通过为JFrame添加一个窗口监听器(WindowListener)来实现窗口关闭确认。以下是一个简单的示例:
import javax.swing.*; import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class CloseConfirmationFrame extends JFrame { public CloseConfirmationFrame() { // 设置窗口标题 setTitle("关闭确认示例"); // 设置窗口大小 setSize(300, 200); // 设置窗口关闭操作 setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // 添加窗口监听器 addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { int option = JOptionPane.showConfirmDialog(CloseConfirmationFrame.this, "确定要关闭窗口吗?", "关闭确认", JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { // 用户点击了“是”,关闭窗口 System.exit(0); } else { // 用户点击了“否”,保持窗口打开 } } }); } public static void main(String[] args) { // 在事件调度线程中创建并显示GUI SwingUtilities.invokeLater(new Runnable() { @Override public void run() { CloseConfirmationFrame frame = new CloseConfirmationFrame(); frame.setVisible(true); } }); } }
在这个示例中,我们首先设置了窗口标题、大小和默认关闭操作。然后,我们为JFrame添加了一个窗口监听器,并重写了windowClosing
方法。在这个方法中,我们使用JOptionPane.showConfirmDialog
弹出一个确认对话框,询问用户是否确定要关闭窗口。根据用户的选择,我们可以执行相应的操作,例如关闭窗口或保持窗口打开。