积微成著 不积跬步,无以至千里

首页   >   web开发   >   JFrame、jDialog、JWindow三者的区别

JFrame、jDialog、JWindow三者的区别

在使用swing开发的时候,用到最多的窗体组件就是JFrame了,但是官方还提供了其他的组件JDialog和JWindow,今天就来带领大家看一下这三者有什么区别,分别在什么场景下适用。

一、JFrame

在窗体的右上角,会有最小化、最大化、关闭这三个按钮

JavaSwing中JFrame、jDialog、JWindow三者的区别

而且,在任务栏有一个图标(注意:是任务栏,不是系统托盘)

JavaSwing中JFrame、jDialog、JWindow三者的区别

最后一个图标就是swing的标记,java官方标志性的图标,这个也是可以自己更改的,自定义一个icon即可。

二、JDialog

这是一个弹框的窗体组件,多用于信息的提示,它是没有最大化和最小化的,只有一个关闭按钮

JavaSwing中JFrame、jDialog、JWindow三者的区别

而且,在任务栏并没有图标,还可以设置是否模态窗口

JavaSwing中JFrame、jDialog、JWindow三者的区别

如果我们模仿QQ,那么主窗体就要用这个而不是JFrame了,因为QQ的主窗体是没有在任务栏上存在的,它只有一个系统托盘图标

三、JWindow

这个组件跟JFrame非常相近,甚至可以理解为就是JFrame,只不过去掉了装饰

JavaSwing中JFrame、jDialog、JWindow三者的区别

大家发现了什么,没错,就是在用JFrame的时候,加了一句 setUndecorated(true),就可以有这个效果,可以用来作为一些宣传页面(比如:软件第一次打开的时候,会有一个欢迎和介绍的界面,就可以用这个来实现)。

它也是没有任务栏图标的:

JavaSwing中JFrame、jDialog、JWindow三者的区别

这个组件还有一个不一样的地方,在代码层面,JFrame和JDialog因为有关闭按钮,所以要为它设置一个关闭方式,而JWindow却没有,所以就无需设置

JavaSwing中JFrame、jDialog、JWindow三者的区别

好了,在实际使用中,我个人总结的就是这一些不同了,以后有新的发现了,再来跟大家分享!

QQ群:积微成著官方群(686430774),验证消息:积微成著

站长Q:1347384268(加好友请注明来意)

分享到:

欢迎分享本文,转载请注明出处!

作者:不忘初心

发布时间:2017-12-14

永久地址:http://www.jiweichengzhu.com/article/805e05207f8a409d83948acfe88fe817