Java基础(Swing组件之JDialog窗体)

本文展示了如何在Java Swing中使用JDialog组件创建弹出对话框,并重点讲解了如何修改代码以限制对话框的弹出次数,确保对话框只出现一次。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

package Swing组件;

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

public class Demo01 extends JDialog {
    public Demo01(){
        setTitle("对话框");
        Container c = getContentPane(); // 获取窗体容器
        c.add(new JLabel("这是一个对话框"));

        setVisible(true); // 设置窗体可见
        setBounds(100,100,100,100);  // 设置窗体坐标和大小
    }

    public static void main(String[] args) {

        JFrame f = new JFrame();
        f.setTitle("大窗口");
        f.setBounds(50,50,300,300);
        Container c = f.getContentPane();
        JButton btn = new JButton("弹出对话框");
        c.setLayout( new FlowLayout()); // 设置使用流布局
        c.add(btn);
        f.setVisible(true);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);

        btn.addActionListener(new AbstractAction() {

            public void actionPerformed(ActionEvent e) {
                new Demo01();
        }
    });

}
}

运行结果:
在这里插入图片描述
由图可知,点击弹出对话框,可以弹出无穷多个对话框,若要限制对话框的弹出次数,即阻挡对话框的多次弹出,则需要修改代码。

修改后代码:

package Swing组件;

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

public class Demo01 extends JDialog {
    public Demo01(JFrame frame){
        /*
         第一个参数:父窗体对象
         第二个参数:对话框标题
         第三个参数:是否阻塞父窗体
         */
        super(frame,"对话框标题",true);
        Container c = getContentPane(); // 获取窗体容器
        c.add(new JLabel("这是一个对话框"));

        setBounds(100,100,100,100);  // 设置窗体坐标和大小
    }

    public static void main(String[] args) {

        JFrame f = new JFrame("父窗体");
        f.setBounds(50,50,300,300);
        Container c = f.getContentPane();
        JButton btn = new JButton("弹出对话框");
        c.setLayout( new FlowLayout()); // 设置使用流布局
        c.add(btn);
        f.setVisible(true);
        f.setDefaultCloseOperation(EXIT_ON_CLOSE);

        btn.addActionListener(new AbstractAction() {

            public void actionPerformed(ActionEvent e) {
                Demo01 d =new Demo01(f);
                d.setVisible(true);
        }
    });

}
}

运行结果:在这里插入图片描述
只能弹出一个对话框

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值