Swing est une boîte à outils de développement (boîte à outils GUI) utilisée pour développer des interfaces utilisateur d'applications Java et fait partie des classes de base JAVA. Elle comprend des périphériques d'interface utilisateur graphique (GUI), tels que : zones de texte, boutons, volets divisés et tableaux.
Swing fournit de bien meilleurs éléments d'affichage à l'écran qu'AWT. Ils sont écrits en Java pur, ils peuvent donc fonctionner sur plusieurs plates-formes comme Java lui-même, contrairement à AWT. Ils font partie de JFC. Ils prennent en charge les panneaux et les thèmes remplaçables (thèmes spécifiques par défaut pour différents systèmes d'exploitation), mais n'utilisent pas réellement les appareils fournis par la plate-forme native, mais ne les imitent que superficiellement. Cela signifie que vous pouvez utiliser n'importe quel panneau pris en charge par JAVA sur n'importe quelle plateforme. L’inconvénient des composants légers est qu’ils s’exécutent lentement, mais l’avantage est qu’ils peuvent adopter un comportement uniforme sur toutes les plateformes.
Structure de la bibliothèque de classes Swing
Les composants Swing sont conçus à l'aide de MVC (Model-View-Controller, model-view-controller) pour réaliser l'affichage des composants GUI La séparation de logique et de logique de données permet aux programmeurs de personnaliser Render pour modifier l'apparence d'affichage des composants de l'interface graphique afin d'offrir plus de flexibilité.
Swing est construit autour du composant JComponent, qui étend la classe conteneur d'AWT.
Organigramme de la bibliothèque de classes Swing :
Comme vous pouvez le voir, les composants Swing commencent tous par J à l'exception de la classe AbstmctButton. Le composant conteneur Swing hérite directement de la classe de composant conteneur dans la bibliothèque de classes AWT, et la plupart des autres composants héritent du composant JComponet. Les composants peuvent être divisés en composants conteneurs et les composants non conteneurs incluent JFmme et JDialog. Parmi eux, JComponent définit des composants légers de classes non conteneurs (JBntton, JPanel, JMenu, etc.).
Package Swing
La bibliothèque de classes Swing est composée de nombreux packages, et la conception de l'interface graphique est réalisée grâce à la coopération des classes dans ces packages. Parmi eux, le package javax.swing est le plus grand package fourni par Swing, qui contient près de 100 classes et 25 interfaces. Presque tous les composants Swing sont dans ce package. Le tableau 1 répertorie les packages Swing couramment utilisés.
包名称 | 描述 |
---|---|
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 的类和接口 |
Les événements et les classes d'écoute d'événements sont définis dans le package javax.swing.event, qui est similaire au package d'événements d'AWT. Java.awt.event et javax.swing.event contiennent tous deux des classes d'événements et des interfaces d'écoute qui répondent respectivement aux événements déclenchés par les composants AWT et les composants Swing.
Par exemple, lorsque vous avez besoin d'une notification d'expansion (ou d'effondrement) d'un nœud dans un composant d'arborescence, vous devez implémenter l'interface TreeExpansionListener de Swing et transmettre une instance TreeExpansionEvent à la méthode définie dans l'interface TreeExpansionListener, ainsi que TreeExpansionListener et TreeExpansionEvent. Ils sont tous définis dans le package swing.event.
Bien que le composant table de Swing (JTable) se trouve dans le package javax.swing, ses classes de support se trouvent dans le package javax.swing.table. Les modèles de tableaux, les classes de dessin graphique et les éditeurs se trouvent également dans le package javax.swing.table.
Comme la classe JTable, l'arborescence JTree dans Swing (le composant structurel utilisé pour organiser les données de manière hiérarchique) se trouve également dans le package javax.swing, et ses classes de support se trouvent dans le package javax.swing.tree. Le package javax.swing.tree fournit des classes de support telles que des modèles d'arbre, des nœuds d'arbre, des classes d'édition d'unités d'arbre et des classes de dessin d'arbre.
Conteneur Swing
La première étape de la création d'un programme d'interface utilisateur graphique consiste à créer une classe de conteneur pour accueillir d'autres composants. Une fenêtre commune est un conteneur. Le conteneur lui-même est également un composant et son rôle est d'organiser, de gérer et d'afficher d'autres composants.
Les conteneurs dans Swing peuvent être divisés en deux catégories : les conteneurs de niveau supérieur et les conteneurs intermédiaires.
Le conteneur de niveau supérieur est la base de la programmation graphique. Tous les éléments graphiques doivent être inclus dans le conteneur de niveau supérieur. Le conteneur de niveau supérieur est la fenêtre principale impliquée dans tout programme d'interface graphique. Il s'agit d'un composant conteneur qui affiche et héberge les composants. Il existe trois conteneurs de niveau supérieur qui peuvent être utilisés dans Swing, à savoir JFrame, JDialog et JApplet.
● JFrame : Classe pour les fenêtres frame avec bordures, titres, icônes pour fermer et réduire la fenêtre. Les applications avec une interface graphique utilisent au moins une fenêtre frame.
● JDialog : Classe utilisée pour les boîtes de dialogue.
● JApplet : classe d'applet Java pour utiliser les composants Swing.
Le conteneur intermédiaire est un type de composant de conteneur et peut également héberger d'autres composants. Cependant, le conteneur intermédiaire ne peut pas être affiché indépendamment et doit être attaché à d'autres conteneurs de niveau supérieur. Les conteneurs intermédiaires courants incluent JPanel, JScrollPane, JTabbedPane et JToolBar.
● JPanel : représente un panneau ordinaire et est le conteneur intermédiaire le plus flexible et le plus couramment utilisé.
● JScrollPane : similaire à JPanel, mais il fournit des barres de défilement autour de composants volumineux ou extensibles.
Quantity JTabbedPane : représente un panneau à onglets, qui peut contenir plusieurs composants, mais un seul composant est affiché à la fois. Les utilisateurs peuvent facilement basculer entre les composants.
● JToolBar : Représente une barre d'outils, un ensemble de composants (généralement des boutons) disposés en lignes ou en colonnes.
Dans les programmes Java, les classes conteneur héritent toutes de la classe Container. Le conteneur intermédiaire et le conteneur de niveau supérieur héritent de la relation d'héritage de la classe Container dans le package AWT et le package Swing, comme le montre la figure (organigramme de la classe conteneur) :
Apprentissage recommandé : Tutoriel vidéo Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!