一、Swing概述
Java的基类(Java Foundation Classes JFC)分别是 Swing、抽象窗口工具包(Abstract Windows Toolkit AWT)、辅助功能API、2D API、和 对拖放功能的增强支持;
Swing 是基于 AWT开发的,所以 AWT是Swing的基础,AWT是Java语言开发用户界面程序的基本工具包。Swing提供大多数轻量级组件的组件集
其中 是AWT所缺少的,,另外, Swing还补充一个用于实现包含插入式界面样式等特性的图形用户界面的下层构件,
使得Swing组件 在不同平台上都能够 保持组件的界面样式特性,如双缓冲、调试图形等
Swing提供组件几乎都是轻量级的,少数是重量级的而且是必须的;因为轻量组件 是绘制在包含它的容器中,而非绘制在自己的窗口中;
由 Swing 提供的小应用 程序、窗体、窗口和对话框 都必须是重量组件,提供40多个组件;
二、JFrame类创建窗体
在开发Java应用程序时,使用的是 JFrame类创建窗体。
窗体包含 一个标题、“最小化”按钮、“最大化”按钮、“关闭”按钮
JFrame类提供一系列用来设置窗体的方法
setTitle(String title) 设置窗体的标题
setBounds(int x,int y,int width,int heigth)设置窗体的现实位置及大小,该方法接收4个int型参数,前两个设置窗体的显示位置,依次为窗体左上角的点在显示器中的水平和垂直坐标,后两个参数用来设置窗体的大小;
setVisible(Boolean b)设置窗体是否可见,默认为不可见;
getContentPane.setLayout(null) 设置不采用任何的布局管理器
setDefaultCloseOperation(int operation) 设置用户在此框架上启动“关闭”时默认执行的操作。
JFrame类中方法setDefaultCloseOperation (in operation )的静态常量表
静态常量(常量值) | 执行操作 |
---|---|
HIDE_ON_CLOSE 1 | 隐藏窗口,为默认操作 |
DO_NOTHING_ON_CLOSE 0 | 不执行任何操作 |
DISPOSE_ON_CLOSE 2 | 移除窗口 |
EXIT_ON_CLOSE 3 | 退出窗口 |
程序描述:利用JFrame类创建的窗体分别包含一个标题、“最小化”按钮、“最大化”按钮、和“关闭”按钮
import javax.swing.JFrame; 必要操作 :导入相关类
public class MyFirstFrame extends JFrame { 必要操作 :继承窗体类 JFrame
public static void main(String[] args) {
// TODO 自动生成的方法存根
MyFirstFrame frame = new MyFirstFrame();
frame.setVisible(true); 必要操作 :设置窗体可见,默认不可见
//必须 在最后通过 setVisible (boolean b)方法将窗口设置为可见
}
public MyFirstFrame() { // 构造方法
super(); 必要操作 :继承父类构造方法; 反思 ,为何调用super();?
setTitle("利用JFrame类创建的窗体");//设置窗体的标题; setTitle (String title)
方法 可以设置窗口标题;
// setBounds(int x,int y,int width,int height) 方法 使设置窗口显示位置 及大小
;接收四个int型参数
//前两个 设置 侠士位置 ,水平和垂直坐标,后两个设置 窗体大小
setBounds(100,100,500,375); //设置窗体的显示位置和大小
getContentPane().setLayout(null); //设置为不采用任何布局管理器;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭按钮的动作为退出
// 该方法 的静态常量参数 HIDE_ON_CLOSE 1 隐藏窗口 ,为默认操作
// DO_NOTHING_ON_CLOSE 0 不执行任何操作
// DISPOSE_ON_CLOSE 2 移除窗口
// EXIT_ON_CLOSE 3 退出窗口
}
}
代码运行截图:
三、布局管理器
布局管理器 负责管理组件在容器中的排列方式。
由Swing提供的组件几乎都是轻量组件,其中提供的少量重量组件是必须的。因为轻量组件是绘制在包含它的容器中的,而不是绘制在自己的窗口中,所以,轻量组件最终必须包含在一个重量容器中。因此,有Swing提供的小应用程序、窗体、窗口和对话框都必须是重量组件;
Java是跨平台的开发语言,虽然Java提供空布局管理器的支持,但是却牺牲跨平台性能;
为了实现 “一次编写,到处运行”的目标, 必须使用布局管理器管理每个容器中组件的布局,因为不同的平台(操作系统或者手机等硬件平台)显示组件的策略和方式不同,无法确定不同平台的组件大小和样式。
1.1 空布局管理器
如果 开发的程序只在单一的系统中使用,可以考虑使用
-
getContentPane().setLayout(null)