溫馨提示×

如何在Java中處理對話框關閉事件

小樊
95
2024-08-30 07:14:10
欄目: 編程語言

在Java中,處理對話框關閉事件通常涉及到使用JDialog組件和監(jiān)聽器

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class DialogCloseExample {
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }

    private static void createAndShowGUI() {
        // 創(chuàng)建一個 JFrame
        JFrame frame = new JFrame("Dialog Close Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 200);
        frame.setLocationRelativeTo(null);

        // 創(chuàng)建一個 JButton,點擊時打開對話框
        JButton openDialogButton = new JButton("Open Dialog");
        openDialogButton.addActionListener(e -> {
            JDialog dialog = new JDialog(frame, "My Dialog", true);
            dialog.setSize(200, 100);
            dialog.setLocationRelativeTo(frame);

            // 添加一個按鈕,點擊時關閉對話框
            JButton closeDialogButton = new JButton("Close Dialog");
            closeDialogButton.addActionListener(evt -> dialog.dispose());
            dialog.getContentPane().add(closeDialogButton, BorderLayout.CENTER);

            // 處理對話框的關閉事件
            dialog.addWindowListener(new WindowAdapter() {
                @Override
                public void windowClosing(WindowEvent e) {
                    System.out.println("Dialog is closing...");
                    // 在這里添加其他關閉事件相關的操作
                }
            });

            dialog.setVisible(true);
        });

        frame.getContentPane().add(openDialogButton, BorderLayout.CENTER);

        frame.setVisible(true);
    }
}

在這個示例中,我們首先創(chuàng)建了一個包含JButton的主窗口。當單擊該按鈕時,將打開一個模態(tài)對話框。對話框中有一個名為“關閉對話框”的按鈕,單擊該按鈕將關閉對話框。

我們使用WindowAdapter類來處理對話框的關閉事件。當對話框關閉時,windowClosing方法將被調(diào)用。在這個方法中,你可以添加處理關閉事件所需的任何操作。在本示例中,我們只是在控制臺上打印一條消息。

0