Swing 包含了构建图形界面(GUI)的种种组件,如: 窗口、标签、按钮、文本框等。
Swing 供应了许多比 AWT 更好的屏幕显现元素,运用纯 Java 完成,能够更好的兼容跨平台运转。
为了和 AWT 组件辨别,Swing 组件在javax.swing.*包下,类名均以 J 开首,比方: JFrame、JLabel、JButton等。
引荐课程:Java教程。
Swing组件
一个 Java 的图形界面,由种种差别范例的“元素”构成,比方: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”一致被称为 组件(Component)。
组件根据差别的功用,可分为 顶层容器、中间容器、基础组件。一个简朴窗口的构成,以下层级构造所示:
顶层容器
菜单栏
中间容器
基础组件
基础组件
组件范例的继承关联:
顶层容器 属于窗口类组件,继承自java.awt.Window;
中间容器 和 基础组件 继承自javax.swing.JComponent。
(1)顶层容器
顶层容器属于窗口类组件,能够自力显现,一个图形界面最少须要一个窗口,比方:
# |
组件 |
形貌 |
1 |
JFrame |
一个平常的窗口(绝大多数 Swing 图形界面递次运用 JFrame 作为顶层容器) |
2 |
JDialog |
对话框 |
(2)中间容器
中间容器充任基础组件的载体,不可自力显现。中间容器能够增加多少基础组件(也能够嵌套增加中间容器),对容器内的组件举行治理,类似于给种种庞杂的组件举行分组治理。最顶层的一个中间容器必需依托在顶层容器(窗口)内。
经常使用的中间容器(面板):
# |
组件 |
形貌 |
1 |
JPanel |
平常轻量级面板容器组件 |
2 |
JScrollPane |
带转动条的,能够水温和垂直转动的面板组件 |
3 |
JSplitPane |
分开面板 |
4 |
JTabbedPane |
选项卡面板 |
5 |
JLayeredPane |
层级面板 |
特别的中间容器:
# |
组件 |
形貌 |
1 |
JMenuBar |
菜单栏 |
2 |
JToolBar |
工具栏 |
3 |
JPopupMenu |
弹出菜单 |
4 |
JInternalFrame |
内部窗口 |
(3)基础组件
基础组件是直接完成人机交互的组件。
经常使用的简朴的基础组件:
# |
组件 |
形貌 |
1 |
JLabel |
标签 |
2 |
JButton |
按钮 |
3 |
JRadioButton |
单选按钮 |
4 |
JCheckBox |
复选框 |
5 |
JToggleButton |
开关按钮 |
6 |
JTextField |
文本框 |
7 |
JPasswordField |
暗码框 |
8 |
JTextArea |
文本地区 |
9 |
JComboBox |
下拉列表框 |
10 |
JList |
列表 |
11 |
JProgressBar |
进度条 |
12 |
JSlider |
滑块 |
拔取器组件:
# |
组件 |
形貌 |
1 |
JFileChooser |
文件拔取器 |
2 |
JColorChooser |
色彩拔取器 |
其他较为庞杂的基础组件:
# |
组件 |
形貌 |
1 |
JTable |
表格 |
2 |
JTree |
树 |
3. 规划治理器
把 Swing 的种种组件(JComponent)增加到面板容器中(JPanel),须要给面板容器指定规划治理器(LayoutManager),明白容器(Container)内的各个组件之间的分列规划体式格局。
经常使用的规划治理器:
# |
规划治理器 |
形貌 |
1 |
FlowLayout |
流式规划,按组件到场的递次,按程度方向分列,排满一行换下一行继承分列。 |
2 |
GridLayout |
网格规划,把Container按指定行列数分开出多少网格,每一个网格按递次安排一个控件。 |
3 |
GridBagLayout |
网格袋规划,按网格离别Container,每一个组件可占用一个或多个网格,可将组件垂直、程度或沿它们的基线对齐。 |
4 |
BoxLayout |
箱式规划,将Container中的多个组件按 程度 或 垂直 的体式格局分列。 |
5 |
GroupLayout |
分组规划,将组件按条理分组(串行 或 并行),离别肯定 组件组 在 程度 和 垂直 方向上的位置。 |
6 |
CardLayout |
卡片规划,将Container中的每一个组件看做一张卡片,一次只能显现一张卡片,默许显现第一张卡片。 |
7 |
BorderLayout |
边境规划,把Container按方位分为 5 个地区(东、西、南、北、中),每一个地区安排一个组件。 |
8 |
SpringLayout |
弹性规划,经由过程定义组件四条边的坐标位置来完成规划。 |
9 |
null |
相对规划,经由过程设置组件在Container中的坐标位置来安排组件。 |
4. 代码实例: 一个简朴的窗口递次
package com.xiets.swing;import javax.swing.*;public class Main { public static void main(String[] args) { // 1. 建立一个顶层容器(窗口) JFrame jf = new JFrame("测试窗口"); // 建立窗口 jf.setSize(250, 250); // 设置窗口大小 jf.setLocationRelativeTo(null); // 把窗口位置设置到屏幕中间 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 当点击窗口的封闭按钮时退出递次(没有这一句,递次不会退出) // 2. 建立中间容器(面板容器) JPanel panel = new JPanel(); // 建立面板容器,运用默许的规划治理器 // 3. 建立一个基础组件(按钮),并增加到 面板容器 中 JButton btn = new JButton("测试按钮"); panel.add(btn); // 4. 把 面板容器 作为窗口的内容面板 设置到 窗口 jf.setContentPane(panel); // 5. 显现窗口,前面建立的信息都在内存中,经由过程 jf.setVisible(true) 把内存中的窗口显现在屏幕上。 jf.setVisible(true); } }
效果展现:
以上就是swing组件是什么组件的细致内容,更多请关注ki4网别的相干文章!