Java

如何在java中实现showdialog

小樊
82
2024-09-29 12:02:02
栏目: 编程语言

在Java中,您可以使用JDialog类来创建一个对话框。以下是一个简单的示例,展示了如何创建一个带有“确定”和“取消”按钮的对话框:

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

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

    private static void showDialog() {
        // 创建一个新的JDialog实例
        JDialog dialog = new JDialog();
        dialog.setTitle("示例对话框");
        dialog.setSize(300, 200);
        dialog.setLocationRelativeTo(null); // 居中显示
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

        // 创建一个容器(JPanel)来存放对话框中的组件
        JPanel contentPane = new JPanel();
        contentPane.setLayout(new GridLayout(2, 1));

        // 创建一个标签
        JLabel label = new JLabel("请选择一个选项:");
        contentPane.add(label);

        // 创建一个按钮组,包含“确定”和“取消”按钮
        JButton[] buttons = new JButton[2];
        buttons[0] = new JButton("确定");
        buttons[1] = new JButton("取消");

        // 为“确定”按钮添加点击事件监听器
        buttons[0].addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String selectedOption = "确定";
                JOptionPane.showMessageDialog(dialog, selectedOption);
                dialog.dispose();
            }
        });

        // 为“取消”按钮添加点击事件监听器
        buttons[1].addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String selectedOption = "取消";
                JOptionPane.showMessageDialog(dialog, selectedOption);
                dialog.dispose();
            }
        });

        contentPane.add(buttons[0]);
        contentPane.add(buttons[1]);

        // 将容器添加到对话框中
        dialog.setContentPane(contentPane);

        // 显示对话框
        dialog.setVisible(true);
    }
}

这个示例创建了一个简单的对话框,包含“确定”和“取消”按钮。当用户点击这些按钮时,将显示一个JOptionPane,其中包含按钮的名称。然后,对话框将关闭。

0
看了该问题的人还看了