Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。
Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。
Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。
为了和 AWT 组件区分,Swing 组件在javax.swing.*包下,类名均以 J 开头,例如: JFrame、JLabel、JButton等。
Swing组件
一个 Java 的图形界面,由各种不同类型的“元素”组成,例如: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”统一被称为 组件(Component)。
组件按照不同的功能,可分为 顶层容器、中间容器、基本组件。一个简单窗口的组成,如下层级结构所示:
扫描二维码关注公众号,回复:
12220741 查看本文章
组件类型的继承关系:
- 顶层容器 属于窗口类组件,继承自java.awt.Window;
- 中间容器 和 基本组件 继承自javax.swing.JComponent。
2.1 顶层容器
顶层容器属于窗口类组件,可以独立显示,一个图形界面至少需要一个窗口,例如:
2.2 中间容器
中间容器充当基本组件的载体,不可独立显示。中间容器可以添加若干基本组件(也可以嵌套添加中间容器),对容器内的组件进行管理,类似于给各种复杂的组件进行分组管理。最顶层的一个中间容器必须依托在顶层容器(窗口)内。
常用的中间容器(面板):
特殊的中间容器:
2.3 基本组件
基本组件是直接实现人机交互的组件。
常用的简单的基本组件:
选取器组件:
其他较为复杂的基本组件:
布局管理器
把 Swing 的各种组件(JComponent)添加到面板容器中(JPanel),需要给面板容器指定布局管理器(LayoutManager),明确容器(Container)内的各个组件之间的排列布局方式。
常用的布局管理器:
入门案例
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestJFrame {
public static void main(String[] args) {
//创建一个顶层容器
JFrame jf = new JFrame();
//设置大小
jf.setSize(400, 300);
//设置位置 居中
jf.setLocationRelativeTo(null);//基于当前窗口居中,null默认表示当前系统
//手动关闭窗口时未结束程序
//需要设置关闭时退出JVM
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置标题
jf.setTitle("第一个Swing窗口");
//设置窗口不能最大化且不能缩放窗口
jf.setResizable(false);
//创建一个中间容器
JPanel panel = new JPanel();
//创建一个按钮组件
JButton btn = new JButton("我是第一个个按钮");
JButton btn2 = new JButton("我是第二个个按钮");
//将按钮添加到panel中
panel.add(btn);
panel.add(btn2);
//将中间容器panel添加到窗口中
jf.setContentPane(panel);
//显示窗口
jf.setVisible(true);
}
}