窗体作为Swing应用程序中组件的承载体,处于非常重要的位置。Swing中常用的窗体包括JFrame和JDialog。

JFrame窗体

JFrame窗体是一个容器,它是Swing程序中各个组件的载体,它继承的是JFrame类,它拥有最大化、最小化和关闭的基本按钮。
image.png
运行结果:
image.png
可以看到左上角弹出了一个窗口,可以对他进行拉伸放大的。
但是发现关闭窗体后,程序并没有停止运行,下面介绍窗体关闭规则:
image.png
下面介绍如何设置窗体的大小和位置:
image.png
下面介绍如何添加和删除组件:
添加组件(add方法)
image.png
删除组件(remove方法)
image.png
但是在实际开发中通常不在主方法中初始化窗体,而是使得该类继承JFrame类,使该类也成为一个窗体
image.png
注意:super指父类对象,因此可以用super.方法调用父类中的方法,其实这里可以不用super也能成功编译,只是为了程序的可读性建议写上super。

JDialog窗体(对话框窗口)

image.png
JDialog窗体实际应用于弹出对话框(如上图所示),没有最小化和最大化功能
image.png
下面重点介绍super(参数1,参数2,参数3):
参数1:父窗体对象(一个实例化对象,通常时构造JD对象时的参数),即该JD对话框从那个JF窗口弹出;
参数2:JD对话框的标题;
参数3:true代表弹出JD对话框之后,父窗体将不能进行任何操作,直到关闭JD对话框;false代表弹出JD对话框之后
依然可以对父窗体进行其它操作;即参数3决定是否阻塞父窗体。
这里的super指的就是父类JDialog的实例对象

上面这种情况时比较常见的,其实还有其它情况:
3个参数都没有:创建一个没有标题和父窗体的对话框;
只有参数1:创建一个指定父窗体但没有标题的对话框;
只有参数1和参数2:创建一个指定父窗体且有标题的对话框;(此时参数3默认为false)
只有参数1和参数3:创建一个指定了并且可以阻塞父窗体但没有标题的对话框;