JavaSwing之-JDialog

发布于:2025-05-15 ⋅ 阅读:(74) ⋅ 点赞:(0)

JavaSwing之-JDialog

JDialog 是 Java Swing 中用于创建对话框窗口的容器类,继承自 Dialog 类(AWT),常用于显示临时信息、获取用户输入或执行模态操作。它是 javax.swing.JDialog 包中的类。
与 JFrame 不同的是,JDialog 通常依附于一个主窗口(如 JFrame),并可以在需要时弹出,完成交互后关闭。

一、构造方法

JFDialog提供了多个构造方法满足编程爱好者的不同需求,其常见的构造方法如下表所示。

方法名称 功能描述
JDialog() 创建一个非模态对话框,无依赖、无标题
JDialog(JFrame owner) 创建一个非模态对话框,指定拥有它的 JFrame。
JDialog(JFrame owner, String title) 创建带标题的非模态对话框。
JDialog(JFrame owner, String title, boolean modal) 创建指定模态类型的对话框。

构造方法中如果如果设置模态参数,true表示模态对话框,false表示非模态对话框。如果不设置该参数,默认为非模态对话框。

JFrame frame = new JFrame("对话框应用")
JDialog  dialog1 = new JDialog();//无标题、无依赖、非模态对话框
JDialog  dialog2 = new JDialog(frame,"我的对话框-非模态");//有标题、有依赖、非模态对话框
JDialog  dialog3 = new JDialog(frame,"我的对话框-模态",true);//有标题、有依赖、模态对话框
JDialog  dialog4 = new JDialog(frame,"我的对话框-非模态",false);//有标题、有依赖、非模态对话框

对话框与依赖组件(主窗口)之间有模态和非模态两种表现形式,它们的区别如下表所示。

模态与非模态区别

类型 描述 使用场景
模态(true) 弹出后,用户不能操作主窗口,直到关闭该对话框 登录、确认操作、错误提示等
非模态(false) 弹出后,仍可以操作主窗口 工具面板、日历选择器等辅助功能
二、常用方法
方法名称 功能描述
setTitle(String title) 设置对话框标题
setSize(int width, int height) 设置对话框大小
setLocationRelativeTo(Component c) 相对于某个组件居中显示
setModal(boolean b) 设置是否为模态对话框
setVisible(boolean b) 显示或隐藏对话框
dispose() 销毁对话框资源
setUndecorated(boolean b) 是否隐藏标题栏和边框(必须在 setVisible 之前调用)
  • setTitle(String title)方法可以设置对话框的标题,已构建对话框可以通过该方法添加或更新标题。
dialog1.setTitle("字体设置对话框");
  • setSize(int width,int height)设置对话框的初始大小,也可以用Dimension对象作为参数。
//基于当前屏幕分辨率设置对话框尺寸
//获取当前屏幕分辨率封装到Dimension对象中
Dimension   screenSize = Toolkit.getDefaultToolkit().getScreenSize();
//确定对话框的宽、高值
int width = screenSize.width/2;
int height = screenSize.height/2; 
//创建对话框对象
JDialog dialog = new JDialog("对话框");
//设置初始值大小
dialog.setSize(width,height);//dialog.setSize(new Dimension(width,height));
  • setLocationRelativeTo(Component c)设置对话框相对于组件c居中显示,其中c表示组件对象。
//创建一个窗口对象
JFrame frame = new JFrame("窗口");
frame.setSize(600,400);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建一个对话框对象
JDialog  dialog = new JDialog();//无标题、无依赖、非模态对话框
dialog.setSize(400,300);
dialog.setTitle("字体设置对话框");
dialog.setLocationRelativeTo(frame);//相对窗口居中显示

以上程序结果显示如下。

在这里插入图片描述

  • setModal(boolean b)设置是否为模态对话框。使用该方法可设置或修改对话框的模式
JDialog  dialog = new JDialog(frame,"我是非模态对话框");//有标题、有依赖、非模态对话框
dialog.setModal(true);//设置为模态对话框
  • setUndecorated(boolean b),设置 是否隐藏标题栏和边框,该方法必须在 setVisible 之前调用。当参数为true时隐藏标题栏和边框。

对话框还有许多方法可以被调用完成更加强大的功能,请参考JDK说明文档。

关于更多的综合应用,待学习过常用组件后在综合案例中讲解演示。

三、总结

JDialog 适合用于短期交互任务。根据功能需求选择模态或非模态对话框,最大化体现程序的友好性。

对话框在关闭后应调用 dispose() 释放资源。

如果基于对话框构建功能丰富的 UI,待学习其他容器组件和布局管理器后可实现。


网站公告

今日签到

点亮在社区的每一天
去签到