Swing 用于开发桌面窗体程序,是JDK的第二代GUI框架,其功能比JDK第一代GUI框架AWT更为强大、性能更加优良。但因为Swing技术推出时间太早,其性能、开发效率等不及一些其他流行技术,所以目前市场上大多数桌面窗体程序都不是由Java开发的,Swing技术也逐渐被广大开发人员放弃了。
不过,Swing是JDK自带的功能,并且能非常好体现Java语言在面向对象、接口事件等方面的设计模式.
Swing 常用窗体
JFrame 窗体
JFrame 类的常用构造方法包括以下两种形式:public JFrame(): 创建一个初始不可见、没有标题的窗体。
public JFrame(String title): 创建一个不可见、具体标题的窗体。\n 在创建窗体后,先调用 getContentPane() 方法将窗体转换为容器,再调用 add() 方法或者 remove() 方法向容器中添加组件或者删除容器中的组件。向容器中添加按钮,关键代码如下:JButton okButn=new JButton("确定 ")container.add(okButn);删除容器中的按钮, 关键代码如下:container.remove(okButn);
在创建窗体后,要对窗体进行设置,如设置窗体的位置、大小、是否可见等。具体如下:setBounds(int x , int y , int width , int length): 设置窗体左上角在屏幕中坐标为(x , y),窗体的宽度为 width,窗体的高度为height。setLocation(int x , int y): 设置窗体左上角在屏幕中的坐标为(x , y)。
setSize(int width , int height): 设置窗体的宽度为 width,高度为 height。setVisible(boolean b): 设置窗体是否可见。b 为 true 时,表示可加;b 为 false 时,表示不可见。setDefaultCloseOperation(int operation): 设置窗体的关闭方式,默认值为 DISPOSE_NO_CLOSE。
【18.1】代码如下:
结果:
JDialog 对话框
JDialog 对话框继承了 java.awt.Dialog 类,其功能是从一个窗体中弹出另一个窗体,如使用 IE 浏览器时弹出的确定对话框。JDialog 对话框与JFrame 窗体类似,被使用时也需 getContentPane() 方法把 JDialog 对话框转换为容器,再对 JDialog 对话框进行设置。
【18.2】代码:
运行结果:
JOptionPane 小型对话框
Java API 中的,Javax.swing,JOptionPane 类时一个非常简便的小型对话框类,该类用于创建对话框的方法都是静态方法,无须创建对象即可弹出。在日常开发中经常使用该类弹出提示、确认用户需要、调试程序等。
【18.3】代码如下:
运行结果:
2、确认框
【18.4】代码:
运行结果:
代码【18.5】
结果:
代码:【18.6】
运行结果:
4.通知匡
【18.7】代码:
运行结果:
常用布局管理器
null 绝对布局
绝对布局也叫 null 布局,其特点是硬性指定组件在容器中的位置大小,组件的位置通过绝对坐标的方式来指定。使用绝对布局首先使用 Container.seLayout(null)方法取消容器的布局管理器,然后再使用 Component.setBounds(int x,int y,int width,int height)方法设置每个组件在容器中的位置和大小。
【18.8】代码:
运行如下:
FlowLayout 流布局管理器
流布局(FlowLayout)管理器是 Swing 中最基本的布局管理器。使用流布局管理器摆放组件时,组件被从左到右摆放。当组件占据了当前的所有空间时,溢出的组件会被移动到当前的下一行。默认情况下,行组件的排列方式会被指定为居中对齐,但是通过设置可以更改每一行组件的排序方式。
【18.9】代码如下:
运行结果如下:
【18.10】代码如下:
代码如下:
GridLayout 网格布局管理器
网格布局(GridLayout)管理器能够把容器划分为网格,组件可以按行、列进行
常用面板 JPanel 面板 【18.】
运行结果:
BorderLayout边界布局管理器
使用Swing创建窗体后,容器默认的布局管理器是边界布局管理器,边界布局管理器,把容器划分为东南西北中五个区域
BorderLayout类中的成员变量及其说明如下表所示如果使用了边界布局管理器,在向容器中添加组件时,如果不指定要把组件添加到哪个区域,那么当前组件会被默认添加到CENTER区域,如果向同一区域中添加多个组件,那么后放入的组件会覆盖先放入的组件见 add()方法被用于实现向容器中添加组件的功能,它可以设置组件的摆放位置,常用语法格式如下:public void add(Component comp,Object constraints)comp:被添加的组件
constraints:被添加组件的布局约束对象
代码如下:【18.9】
运行结果: