溫馨提示×

Java JFrame窗口關閉怎樣處理

小樊
144
2024-11-19 17:21:54
欄目: 編程語言

在Java中,當用戶關閉JFrame窗口時,可以通過實現WindowListener接口或重寫windowClosing方法來處理窗口關閉事件。以下是兩種方法的示例:

  1. 實現WindowListener接口:
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyJFrame extends JFrame {

    public MyJFrame() {
        // 初始化窗口標題、大小等
        setTitle("My JFrame");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 添加窗口關閉監聽器
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 處理窗口關閉事件
                int option = JOptionPane.showConfirmDialog(MyJFrame.this, "確定要關閉窗口嗎?", "關閉窗口", JOptionPane.YES_NO_OPTION);
                if (option == JOptionPane.YES_OPTION) {
                    System.exit(0);
                }
            }
        });
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            MyJFrame frame = new MyJFrame();
            frame.setVisible(true);
        });
    }
}
  1. 重寫windowClosing方法:
import javax.swing.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyJFrame extends JFrame {

    public MyJFrame() {
        // 初始化窗口標題、大小等
        setTitle("My JFrame");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

        // 添加窗口關閉監聽器
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                // 處理窗口關閉事件
                int option = JOptionPane.showConfirmDialog(MyJFrame.this, "確定要關閉窗口嗎?", "關閉窗口", JOptionPane.YES_NO_OPTION);
                if (option == JOptionPane.YES_OPTION) {
                    System.exit(0);
                }
            }
        });
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            MyJFrame frame = new MyJFrame();
            frame.setVisible(true);
        });
    }
}

在這兩個示例中,我們都重寫了windowClosing方法,當用戶關閉窗口時,會彈出一個確認對話框詢問用戶是否確定關閉。如果用戶點擊“是”,則程序將退出;否則,窗口將保持打開狀態。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女