前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java GUI.Swing窗体设计之JDialog

Java GUI.Swing窗体设计之JDialog

作者头像
用户9184480
发布2024-12-19 08:27:02
发布2024-12-19 08:27:02
11800
代码可运行
举报
文章被收录于专栏:云计算linux
运行总次数:0
代码可运行

对话框需要依赖于一个窗口,它会随着窗口的关闭而关闭,随着窗口的最小化而隐藏,随着窗口的还原而再次显示。 对话框容器分为模态对话框和非模态对话框两类。模态对话框是指用户需要等到对话框处理完毕后才能与其他窗口交互,而非模态对话框允许用户在使用对话框同时与其他窗口交互。JDialog是Swing组件中的对话框,它继承了AWT组件中的Dialog类,它的功能是从一个窗体中弹出另一个窗体。JDialog类常用的构造方法如表12.2所示。

  • JDialog类常用构造方法

构造方法

功能描述

public JDialog(Frame frame)

创建一个无标题的对话框

public JDialog(Frame frame,String title)

创建一个有标题的对话框

public JDialog(Frame frame,boolean model)

创建一个无标题且指定类型的对话框

表12.2中,列举了JDialog类常用的构造方法,接下来通过一个案例来演示如何使用JDialog对话框,如例12-2所示。

例12-2 Demo1202.java

代码语言:javascript
代码运行次数:0
复制
 1import javax.swing.*;
 2import java.awt.*;
 3import java.awt.event.ActionEvent;
 4import java.awt.event.ActionListener;
 5
 6public class Demo1202 {
 7    public static void main(String[] args) {
 8        JFrame jFrame = new JFrame("JFrame容器窗口"); // 创建JFrame窗体
 9        jFrame.setLayout(new FlowLayout()); 		      // 设置布局
 10        jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
 11        jFrame.setVisible(true);
 12        JButton jButton1 = new JButton("调用JDialog模态对话框窗口");
 13        jFrame.add(jButton1);			              // 添加按钮
 14        JButton jButton2 = new JButton("调用JDialog非模态对话框窗口");
 15        jFrame.add(jButton2);
 16        jFrame.setSize(400, 247);
 17
 18        final JLabel jLabel = new JLabel();
 19        final JDialog jDialog = new JDialog(jFrame, "JDialog窗口");
 20        jDialog.setSize(200, 150);
 21        jDialog.setLocation(50, 60);
 22        jDialog.setLayout(new FlowLayout());
 23
 24        jButton1.addActionListener(new ActionListener() {
 25            public void actionPerformed(ActionEvent e) {
 26                jDialog.setModal(true);			  // 设置模态对话框模式
 27                 if (jDialog.getComponents().length == 1) {
 28                     jDialog.add(jLabel);
 29                  }
 30                  jLabel.setText("JDialog模态对话框窗口1");
 31                jDialog.setVisible(true);
 32              }
 33        });
 34        jButton2.addActionListener(new ActionListener() {
 35            public void actionPerformed(ActionEvent e) {
 36                jDialog.setModal(false);              // 设置为非模态对话框模式
 37                 if (jDialog.getComponents().length == 1) {
 38                     jDialog.add(jLabel);
 39                 }
 40                 jLabel.setText("JDialog非模态对话框窗口2");
 41                jDialog.setVisible(true);
 42            }
 43        });
 44    }
}

程序的运行结果如图12.3、12.4所示。

  • 例12-2运行结果调用模态对话框
Java GUI.Swing窗体设计之JDialog_web
Java GUI.Swing窗体设计之JDialog_web
  • 例12-2运行结果调用非模态对话框
Java GUI.Swing窗体设计之JDialog_swing_02
Java GUI.Swing窗体设计之JDialog_swing_02

例12-2运行之后,先创建了JFrame窗体,在窗体中添加两个按钮,用于弹出JDialog窗口,然后分别点击按钮,将对应窗口弹出,图12.3为模态对话框,此时不能操作JFrame容器窗体,要先将弹出的JDialog对话框关闭才可以操作。图12.4可以操作JFrame容器窗口进行窗口关闭,JDialog非模态对话框窗口也随之进行关闭。第37行代码为设置模态对话框模式,第47行代码为设置非模态对话框模式。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档