Java 窗口彈出和確認關閉對于開發桌面應用程序至關重要。在 Java 中,彈出窗口可以使用窗口組件(JFrame、JDialog、JOptionPane 等)來實現。而在關閉窗口時,為了避免用戶誤操作,通常需要彈出一個確認對話框來提示用戶是否確認關閉。
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyWindow extends JFrame { public MyWindow() { super("我的窗口"); setSize(300, 200); setLocationRelativeTo(null); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); // 在窗口關閉時彈出確認對話框 addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { int option = JOptionPane.showConfirmDialog(null, "是否確認關閉窗口?", "提示", JOptionPane.YES_NO_OPTION); if (option == JOptionPane.YES_OPTION) { dispose(); System.exit(0); } } }); setVisible(true); } } public class MainClass { public static void main(String[] args) { new MyWindow(); } }
在上面代碼中,我們自定義了一個 MyWindow 類,繼承 JFrame 類,重寫了 JFrame 中的 setDefaultCloseOperation 方法,將其設置為 DO_NOTHING_ON_CLOSE,表示關閉窗口時不進行任何操作。接著,我們添加了一個 WindowListener 監聽器,重寫了 windowClosing 方法,在關閉窗口時彈出確認對話框。
確認對話框使用了 JOptionPane 類,其中 showConfirmDialog 方法可以彈出一個確認對話框,第一個參數為對話框的父組件,第二個參數為提示信息,第三個參數為對話框標題,第四個參數為對話框按鈕(默認為 OK 和 Cancel)。我們在這里將第四個參數設置為 YES_NO_OPTION,表示只顯示 Yes 和 No 兩個按鈕。
最后,判斷用戶的選擇,如果選擇了 Yes,就調用 dispose 方法關閉窗口,同時調用 System.exit 方法終止程序。如果選擇了 No,就僅僅關閉對話框,保持原有的窗口狀態。