Swing is a set of toolkits provided by Java for graphical interface application development and is part of the Java basic classes.
Swing includes various components for building a graphical interface (GUI), such as windows, labels, buttons, text boxes, etc.
Swing provides many better screen display elements than AWT. It is implemented in pure Java and can be better compatible with cross-platform operation.
In order to distinguish it from AWT components, Swing components are under the javax.swing.* package, and their class names all start with J, such as: JFrame, JLabel, JButton, etc.
Recommended course: Java Tutorial
Swing Component
A Java graphical interface, consisting of various It is composed of types of "elements", such as windows, menu bars, dialog boxes, labels, buttons, text boxes, etc. These "elements" are collectively called components.
Components can be divided into top-level containers, intermediate containers, and basic components according to different functions. The composition of a simple window is as follows:
Top-level container
Menu bar
Intermediate container
Basic component
Basic component
Component type Inheritance relationship:
The top-level container belongs to the window class component and inherits from java.awt.Window;
The intermediate container and basic components inherit from javax.swing.JComponent.
(1) Top-level container
The top-level container is a window component and can be displayed independently. A graphical interface requires at least one window, for example:
|
#Component
|
Description
|
1
|
JFrame
|
An ordinary window (most Swing graphical interface programs use JFrame as the top-level container)
|
2
|
JDialog
|
Dialog
|
##(2) Intermediate container
The intermediate container serves as the carrier of basic components and cannot be displayed independently. The intermediate container can add several basic components (intermediate containers can also be nested) to manage the components within the container, which is similar to grouping and managing various complex components. The top-level intermediate container must be supported within the top-level container (window).
Commonly used intermediate containers (panels):
| Component
| Description
|
##1
JPanel |
General lightweight panel container component |
|
2
JScrollPane |
A panel component with a scroll bar that can scroll horizontally and vertically |
|
3
JSplitPane |
Split Panel |
| ##4
JTabbedPane
|
Tab Panel
|
| 5
JLayeredPane
|
Hierarchy panel
|
|
Special intermediate container:
#Component
|
Description
|
##1 |
JMenuBar
| Menu Bar
|
##2
|
JToolBar
Toolbar |
|
3
|
JPopupMenu
Popup Menu |
|
4
|
JInternalFrame
Internal Window |
|
(3) Basic components
Basic components are components that directly realize human-computer interaction.
Commonly used simple basic components:
|
Component
|
Description
|
1
|
JLabel
|
label
|
2
|
JButton
|
Button
|
3
|
JRadioButton |
Radio button
|
4
|
JCheckBox
|
Check box |
5
|
JToggleButton
|
Switch Button
|
6
|
JTextField
|
Text Box
|
7
|
JPasswordField |
Password box
|
##8
| JTextArea
| Text area
|
9
| JComboBox
| Drop-down list box
|
10
| JList
| List
|
11
| JProgressBar
| Progress Bar
|
##12
JSlider |
Slider |
|
Selector component:
Component |
Description |
|
1
JFileChooser |
File Picker |
|
2
JColorChooser |
Color Picker |
|
Other more complex basics Component:
#Component |
Description |
| ##1
JTable
|
Table
|
| 2
JTree
|
Tree
|
|
3. Layout Manager
To add various Swing components (JComponent) to the panel container (JPanel), you need to specify the layout manager (LayoutManager) for the panel container and specify the contents of the container (Container) The arrangement and layout of the various components.
Commonly used layout managers:
|
Layout Manager
|
Description
|
1
|
FlowLayout
|
Flow layout, arranged in the horizontal direction in the order in which the components are added, When one row is full, change to the next row and continue arranging.
|
2
|
GridLayout
|
Grid layout, separate the Container into several grids according to the specified number of rows and columns , each grid places a control in order.
|
3
| ##GridBagLayout
| Grid bag layout, divide Container according to grid, each component can Occupying one or more grids, components can be aligned vertically, horizontally, or along their baseline.
|
4
##BoxLayout |
Box layout, arrange multiple components in the Container horizontally or vertically arranged in a way. |
|
5
GroupLayout |
Group layout, group components hierarchically (serial or parallel), Determine the position of the component group in the horizontal and vertical directions respectively. |
|
6
##CardLayout
|
Card layout, treating each component in the Container as a card , only one card can be displayed at a time, and the first card is displayed by default.
|
##7 |
BorderLayout
| Border layout divides the Container into 5 areas according to the orientation (East, West, South, North, Center), placing one component in each area.
|
8 |
SpringLayout
| Flexible layout implements layout by defining the coordinate positions of the four sides of the component.
|
9 |
##null
Absolute layout, placing the component by setting its coordinate position in the Container . |
|
4. Code example: A simple window program |
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);
}
}
Result display:
|
The above is the detailed content of What is a swing component?. For more information, please follow other related articles on the PHP Chinese website!