Home>Article>Java> What is a swing component?

What is a swing component?

(*-*)浩
(*-*)浩 Original
2019-05-11 17:55:20 6555browse

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

Component Description ##1 2 3 ##4 5 Special 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

JMenuBar Menu Bar JToolBar JPopupMenu JInternalFrame
#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:

##8 JTextArea Text area 9 JComboBox Drop-down list box 10 JList List 11 JProgressBar Progress 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

1 2 Other more complex basics Component:

Component

Description


JFileChooser

File Picker


JColorChooser

Color Picker

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:

##1 2

#Component

Description

JTable
Table

JTree
Tree

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); } }
##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 5 6 BorderLayout 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 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