Swing ist eine Reihe von Toolkits, die von Java für die Entwicklung grafischer Schnittstellenanwendungen bereitgestellt werden und Teil der Java-Basisklassen sind.
Swing enthält verschiedene Komponenten zum Aufbau einer grafischen Oberfläche (GUI), wie Fenster, Beschriftungen, Schaltflächen, Textfelder usw.
Swing bietet viele bessere Bildschirmanzeigeelemente als AWT. Es ist in reinem Java implementiert und kann besser mit dem plattformübergreifenden Betrieb kompatibel sein.
Um sie von AWT-Komponenten zu unterscheiden, befinden sich Swing-Komponenten im Paket javax.swing.* und ihre Klassennamen beginnen alle mit J, wie zum Beispiel: JFrame, JLabel, JButton usw.
Empfohlene Kurse: Java-Tutorial
Swing-Komponente
Eine grafische Java-Schnittstelle, bestehend aus verschiedenen bestehend aus Arten von „Elementen“, wie z. B. Fenstern, Menüleisten, Dialogfeldern, Beschriftungen, Schaltflächen, Textfeldern usw. Diese „Elemente“ werden zusammenfassend als Komponenten bezeichnet.
Komponenten können je nach Funktion in Oberbehälter, Zwischenbehälter und Grundkomponenten unterteilt werden. Der Aufbau eines einfachen Fensters ist in der folgenden hierarchischen Struktur dargestellt:
Container der obersten Ebene
Menüleiste
Zwischenbehälter
Grundkomponente
Grundkomponente
Komponententyp Vererbungsbeziehung:
Der Container der obersten Ebene gehört zur Fensterklassenkomponente und erbt von java.awt.Window;
Der Zwischencontainer und die Basiskomponenten erben von javax.swing.JComponent.
(1) Top-Level-Container
Der Top-Level-Container ist eine Fensterkomponente und kann unabhängig angezeigt werden. Eine grafische Oberfläche erfordert mindestens ein Fenster, z Beispiel:
#
|
Komponente | Beschreibung | |||||||||
1 td> | JFrame | Ein normales Fenster (die meisten Swing Grafische Schnittstellenprogramme verwenden JFrame als Container der obersten Ebene) | |||||||||
2 | JDialog | Dialog |
# |
组件 |
描述 |
1 |
JPanel |
一般轻量级面板容器组件 |
2 |
JScrollPane |
带滚动条的,可以水平和垂直滚动的面板组件 |
3 |
JSplitPane |
分隔面板 |
4 |
JTabbedPane |
选项卡面板 |
5 |
JLayeredPane |
层级面板 |
(2) Zwischenbehälter
Der Zwischenbehälter dient als Träger von Grundkomponenten und kann nicht unabhängig angezeigt werden. Dem Zwischencontainer können mehrere Grundkomponenten hinzugefügt werden (Zwischencontainer können auch verschachtelt werden), um die Komponenten innerhalb des Containers zu verwalten, was dem Gruppieren und Verwalten verschiedener komplexer Komponenten ähnelt. Der Zwischencontainer der obersten Ebene muss innerhalb des Containers der obersten Ebene (Fenster) unterstützt werden. Häufig verwendete Zwischenbehälter (Panels):# |
组件 |
描述 |
1 |
JMenuBar |
菜单栏 |
2 |
JToolBar |
工具栏 |
3 |
JPopupMenu |
弹出菜单 |
4 |
JInternalFrame |
内部窗口 |
# td> | Komponente | Beschreibung |
1 | JPanel | Allgemeine Leichtbauplatten-Containerkomponente |
2 | JScrollPane | Panel-Komponente mit Bildlaufleiste, die horizontal und vertikal scrollen kann td> tr> |
3 | JSplitPane | Trennfeld |
4 | JTabbedPane | Tab Panel | 5 | JLayeredPane | Ebenentafel |
# | Komponente | Beschreibung |
1 | JMenuBar | Menüleiste |
2 | JToolBar | Symbolleiste |
3 | JPopupMenu | Popup-Menü |
4 | JInternalFrame | Internes Fenster |
(3) Grundkomponenten
Grundkomponenten sind Komponenten, die die Mensch-Computer-Interaktion direkt realisieren.
Häufig verwendete einfache Grundkomponenten:
# |
组件 |
描述 |
1 |
JLabel |
标签 |
2 |
JButton |
按钮 |
3 |
JRadioButton |
单选按钮 |
4 |
JCheckBox |
复选框 |
5 |
JToggleButton |
开关按钮 |
6 |
JTextField |
文本框 |
7 |
JPasswordField |
密码框 |
8 |
JTextArea |
文本区域 |
9 |
JComboBox |
下拉列表框 |
10 |
JList |
列表 |
11 |
JProgressBar |
进度条 |
12 |
JSlider |
滑块 |
Selektorkomponente:
# |
组件 |
描述 |
1 |
JFileChooser |
文件选取器 |
2 |
JColorChooser |
颜色选取器 |
Andere komplexere Grundkomponenten:
# |
组件 |
描述 |
1 |
JTable |
表格 |
2 |
JTree |
树 |
3. Layout-Manager
Um verschiedene Swing-Komponenten (JComponent) zum Panel-Container (JPanel) hinzuzufügen, müssen Sie den Layout-Manager (LayoutManager) für den Panel-Container angeben und den Inhalt des Containers angeben (Container) Die Anordnung und Anordnung der verschiedenen Komponenten.
Häufig verwendete Layout-Manager:
# |
布局管理器 |
描述 |
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. Codebeispiel: Ein einfaches Fensterprogramm
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); } }
Ergebnisanzeige:
Das obige ist der detaillierte Inhalt vonWas ist eine Swing-Komponente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!