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):JPanel |
General lightweight panel container component |
|
JScrollPane |
A panel component with a scroll bar that can scroll horizontally and vertically |
|
JSplitPane |
Split Panel |
|
JTabbedPane |
Tab Panel |
|
JLayeredPane |
Hierarchy panel |
#Component |
Description |
##1 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
##2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Toolbar |
3 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Popup Menu |
4 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Internal Window |
(3) Basic components Basic components are components that directly realize human-computer interaction. Commonly used simple basic components:
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:
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); } }
|
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!