Swing ist ein Entwicklungs-Toolkit (GUI-Toolkit), das zur Entwicklung von Java-Anwendungsbenutzeroberflächen verwendet wird und Teil der JAVA-Basisklassen ist. Es umfasst Geräte für grafische Benutzeroberflächen (GUI); Textfelder, Schaltflächen, geteilte Bereiche und Tabellen.
Swing bietet viele bessere Bildschirmanzeigeelemente als AWT. Sie sind in reinem Java geschrieben, sodass sie im Gegensatz zu AWT wie Java selbst plattformübergreifend ausgeführt werden können. Sie sind Teil von JFC. Sie unterstützen austauschbare Panels und Themes (standardmäßige spezifische Themes für verschiedene Betriebssysteme), nutzen aber nicht tatsächlich die von der nativen Plattform bereitgestellten Geräte, sondern ahmen sie nur oberflächlich nach. Das bedeutet, dass Sie jedes von JAVA unterstützte Panel auf jeder Plattform verwenden können. Der Nachteil leichtgewichtiger Komponenten besteht darin, dass sie langsam ausgeführt werden. Der Vorteil besteht jedoch darin, dass sie auf allen Plattformen ein einheitliches Verhalten annehmen können.
Swing-Klassenbibliotheksstruktur
Swing-Komponenten werden mit MVC (Model-View-Controller, Model-View-Controller) entworfen, um die Anzeige von GUI-Komponenten zu realisieren von Logik und Datenlogik ermöglicht es Programmierern, Render anzupassen, um das Erscheinungsbild von GUI-Komponenten zu ändern und so mehr Flexibilität zu bieten.
Swing basiert auf der JComponent-Komponente, die die Containerklasse von AWT erweitert.
Organisationsdiagramm der Swing-Klassenbibliothek:
Wie Sie sehen können, beginnen Swing-Komponenten alle mit J, mit Ausnahme der AbstmctButton-Klasse. Die Swing-Containerkomponente erbt direkt die Containerkomponentenklasse in der AWT-Klassenbibliothek, und die meisten anderen Komponenten erben die JComponet-Komponente. Komponenten können in Containerkomponenten und Nicht-Containerkomponenten unterteilt werden. Zu den Containerkomponenten gehören JFmme und JDialog. Unter diesen definiert JComponent leichtgewichtige Komponenten von Nicht-Container-Klassen (JBntton, JPanel, JMenu usw.).
Swing-Paket
Die Swing-Klassenbibliothek besteht aus vielen Paketen, und das GUI-Design wird durch die Zusammenarbeit der Klassen in diesen Paketen vervollständigt. Unter diesen ist das Paket javax.swing das größte von Swing bereitgestellte Paket, das fast 100 Klassen und 25 Schnittstellen enthält. Fast alle Swing-Komponenten sind in diesem Paket enthalten. Tabelle 1 listet häufig verwendete Swing-Pakete auf.
包名称 | 描述 |
---|---|
javax.swing | 提供一组“轻量级”组件,尽量让这些组件在所有平台上的工作方式都相同 |
javax.swing.border | 提供围绕 Swing 组件绘制特殊边框的类和接口 |
javax.swing.event | 提供 Swing 组件触发的事件 |
javax.swing.filechooser | 提供 JFileChooser 组件使用的类和接口 |
javax.swing.table | 提供用于处理 javax.swing.JTable 的类和接口 |
javax.swing.text | 提供类 HTMLEditorKit 和创建 HTML 文本编辑器的支持类 |
javax.swing.tree | 提供处理 javax.swingJTree 的类和接口 |
Ereignisse und Ereignis-Listener-Klassen werden im Paket javax.swing.event definiert, das dem Ereignispaket von AWT ähnelt. Sowohl Java.awt.event als auch javax.swing.event enthalten Ereignisklassen und Listener-Schnittstellen, die auf Ereignisse reagieren, die von AWT-Komponenten bzw. Swing-Komponenten ausgelöst werden.
Wenn Sie beispielsweise eine Benachrichtigung über die Knotenerweiterung (oder den Zusammenbruch) in einer Baumkomponente benötigen, müssen Sie die TreeExpansionListener-Schnittstelle von Swing implementieren und eine TreeExpansionEvent-Instanz an die in der TreeExpansionListener-Schnittstelle sowie TreeExpansionListener und TreeExpansionEvent definierte Methode übergeben Sie sind alle im Paket swing.event definiert.
Obwohl die Tabellenkomponente (JTable) von Swing im Paket javax.swing enthalten ist, befinden sich die unterstützenden Klassen im Paket javax.swing.table. Tabellenmodelle, Grafikzeichenklassen und Editoren sind ebenfalls im Paket javax.swing.table enthalten.
Wie die JTable-Klasse befindet sich auch der Baum JTree in Swing (die Strukturkomponente zur hierarchischen Organisation von Daten) im Paket javax.swing, und seine unterstützenden Klassen befinden sich im Paket javax.swing.tree. Das Paket javax.swing.tree stellt Unterstützungsklassen wie Baummodelle, Baumknoten, Bearbeitungsklassen für Baumeinheiten und Baumzeichnungsklassen bereit.
Swing-Container
Der erste Schritt beim Erstellen eines grafischen Benutzeroberflächenprogramms besteht darin, eine Containerklasse zu erstellen, um andere Komponenten aufzunehmen. Ein gemeinsames Fenster ist ein Container. Der Container selbst ist ebenfalls eine Komponente und seine Aufgabe besteht darin, andere Komponenten zu organisieren, zu verwalten und anzuzeigen.
Container in Swing können in zwei Kategorien unterteilt werden: Top-Level-Container und Zwischencontainer.
Der Top-Level-Container ist die Basis für die Grafikprogrammierung. Alle grafischen Dinge müssen im Top-Level-Container enthalten sein. Der Container der obersten Ebene ist das Hauptfenster jedes grafischen Schnittstellenprogramms. Es handelt sich um eine Containerkomponente, die Komponenten anzeigt und hostet. Es gibt drei Container der obersten Ebene, die in Swing verwendet werden können, nämlich JFrame, JDialog und JApplet.
● JFrame: Klasse für Rahmenfenster mit Rahmen, Titeln, Symbolen zum Schließen und Minimieren des Fensters. Anwendungen mit GUI nutzen mindestens ein Rahmenfenster.
● JDialog: Klasse, die für Dialogfelder verwendet wird.
● JApplet: Java-Applet-Klasse zur Verwendung von Swing-Komponenten.
Der Zwischencontainer ist eine Art Containerkomponente und kann auch andere Komponenten beherbergen. Der Zwischencontainer kann jedoch nicht unabhängig angezeigt werden und muss an andere Container der obersten Ebene angehängt werden. Zu den gängigen Zwischencontainern gehören JPanel, JScrollPane, JTabbedPane und JToolBar.
● JPanel: Stellt ein gewöhnliches Panel dar und ist der flexibelste und am häufigsten verwendete Zwischencontainer.
● JScrollPane: Ähnlich wie JPanel, bietet jedoch Bildlaufleisten um große oder erweiterbare Komponenten.
● JTabbedPane: Stellt ein TabbedPane dar, das mehrere Komponenten enthalten kann, aber es wird jeweils nur eine Komponente angezeigt. Benutzer können problemlos zwischen Komponenten wechseln.
● JToolBar: Stellt eine Symbolleiste dar, eine Reihe von Komponenten (normalerweise Schaltflächen), die in Zeilen oder Spalten angeordnet sind.
In Java-Programmen erben alle Containerklassen von der Containerklasse. Der Zwischencontainer und der Container der obersten Ebene erben die Vererbungsbeziehung der Containerklasse im AWT-Paket und im Swing-Paket, wie in der Abbildung (Organigramm der Containerklasse) dargestellt:
Empfohlenes Lernen: Java-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist Java-Swing?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!