温馨提示×

java jframe类如何实现模态对话框

小樊
86
2024-12-08 14:57:22
栏目: 编程语言

在Java中,要实现一个模态对话框,可以使用JDialog类,并设置其模式为Modal。以下是一个简单的示例,展示了如何创建一个模态对话框:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

    private static void createAndShowModalDialog() {
        // 创建主窗口
        JFrame mainFrame = new JFrame("模态对话框示例");
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.setSize(400, 300);
        mainFrame.setLayout(new FlowLayout());

        // 创建按钮,用于打开模态对话框
        JButton showDialogButton = new JButton("显示模态对话框");
        mainFrame.add(showDialogButton);

        // 创建模态对话框
        JDialog modalDialog = new JDialog(mainFrame, "模态对话框", true);
        modalDialog.setSize(200, 100);
        modalDialog.setLayout(new FlowLayout());

        // 添加对话框内容
        JLabel dialogLabel = new JLabel("这是一个模态对话框");
        modalDialog.add(dialogLabel);

        // 添加确认按钮
        JButton confirmButton = new JButton("确认");
        modalDialog.add(confirmButton);

        // 添加取消按钮
        JButton cancelButton = new JButton("取消");
        modalDialog.add(cancelButton);

        // 为确认按钮添加点击事件
        confirmButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JOptionPane.showMessageDialog(modalDialog, "确认操作");
                modalDialog.dispose();
            }
        });

        // 为取消按钮添加点击事件
        cancelButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                modalDialog.dispose();
            }
        });

        // 显示主窗口
        mainFrame.setVisible(true);
    }
}

在这个示例中,我们首先创建了一个主窗口JFrame,然后创建了一个模态对话框JDialog,并设置了其模式为true。接下来,我们向对话框中添加了一些内容(标签和按钮),并为确认和取消按钮添加了点击事件。当用户点击确认按钮时,会弹出一个消息框,然后关闭对话框;当用户点击取消按钮或点击主窗口的关闭按钮时,对话框也会关闭。

0