search
HomeJavajavaTutorialWhat is a swing component?

What is a swing component?

May 11, 2019 pm 05:55 PM
javaswing

What is a swing component?

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):

ComponentDescription ##1 2 3##4 5Special intermediate container:




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

JMenuBarMenu Bar JToolBarJPopupMenuJInternalFrame
#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:

##8JTextAreaText area 9 JComboBox Drop-down list box 10 JListList 11 JProgressBarProgress Bar ##12 Selector component:

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













JSlider

Slider

12 Other more complex basics Component:

Component

Description


JFileChooser

File Picker


JColorChooser

Color Picker

##1 2

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:


#Component

Description

JTable
Table

JTree
Tree

##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. 45 6BorderLayout Border layout divides the Container into 5 areas according to the orientation (East, West, South, North, Center), placing one component in each area. SpringLayout Flexible layout implements layout by defining the coordinate positions of the four sides of the component. ##null
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:

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



##BoxLayout

Box layout, arrange multiple components in the Container horizontally or vertically arranged in a way.


GroupLayout

Group layout, group components hierarchically (serial or parallel), Determine the position of the component group in the horizontal and vertical directions respectively.

##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



8



9

Absolute layout, placing the component by setting its coordinate position in the Container .


4. Code example: A simple window program


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!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools