Avant-propos
Swing est une boîte à outils de développement permettant de développer des interfaces utilisateur pour les applications Java. Il est basé sur Abstract Window Toolkit (AWT) pour permettre aux applications multiplateformes d'utiliser n'importe quel style d'apparence enfichable. Les développeurs Swing peuvent profiter des fonctionnalités riches et flexibles et des composants modulaires de Swing pour créer des interfaces utilisateur élégantes avec seulement une petite quantité de code.
Swing est une boîte à outils GUI conçue pour Java.
Swing fait partie des cours de base JAVA.
Swing comprend des composants d'interface utilisateur graphique (GUI) tels que des zones de texte, des boutons, des volets divisés et des 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.
Programme Hello World
Le code du fichier HelloWorldSwing.java est le suivant :
import javax.swing.*; public class HelloWorldSwing { /**{ * 创建并显示GUI。出于线程安全的考虑, * 这个方法在事件调用线程中调用。 */ private static void createAndShowGUI() { // 确保一个漂亮的外观风格 JFrame.setDefaultLookAndFeelDecorated(true); // 创建及设置窗口 JFrame frame = new JFrame("HelloWorldSwing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 添加 "Hello World" 标签 JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); // 显示窗口 frame.pack(); frame.setVisible(true); } public static void main(String[] args) { // 显示应用 GUI javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
Exécutez la commande suivante pour afficher le résultat :
$ javac HelloWorldSwing.java $ java HelloWorldSwing
Un exemple de boîte de connexion utilisateur
Le code du fichier SwingLoginExample.java est le suivant :
import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class SwingLoginExample { public static void main(String[] args) { // 创建 JFrame 实例 JFrame frame = new JFrame("Login Example"); // Setting the width and height of frame frame.setSize(350, 200); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /* 创建面板,这个类似于 HTML 的 div 标签 * 我们可以创建多个面板并在 JFrame 中指定位置 * 面板中我们可以添加文本字段,按钮及其他组件。 */ JPanel panel = new JPanel(); // 添加面板 frame.add(panel); /* * 调用用户定义的方法并添加组件到面板 */ placeComponents(panel); // 设置界面可见 frame.setVisible(true); } private static void placeComponents(JPanel panel) { /* 布局部分我们这边不多做介绍 * 这边设置布局为 null */ panel.setLayout(null); // 创建 JLabel JLabel userLabel = new JLabel("User:"); /* 这个方法定义了组件的位置。 * setBounds(x, y, width, height) * x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。 */ userLabel.setBounds(10,20,80,25); panel.add(userLabel); /* * 创建文本域用于用户输入 */ JTextField userText = new JTextField(20); userText.setBounds(100,20,165,25); panel.add(userText); // 输入密码的文本域 JLabel passwordLabel = new JLabel("Password:"); passwordLabel.setBounds(10,50,80,25); panel.add(passwordLabel); /* *这个类似用于输入的文本域 * 但是输入的信息会以点号代替,用于包含密码的安全性 */ JPasswordField passwordText = new JPasswordField(20); passwordText.setBounds(100,50,165,25); panel.add(passwordText); // 创建登录按钮 JButton loginButton = new JButton("login"); loginButton.setBounds(10, 80, 80, 25); panel.add(loginButton); } }
Analyse du concept :
$ javac SwingLoginExample.java $ java SwingLoginExample
JLabel – Les objets JLabel peuvent afficher du texte, des images ou les deux. Vous pouvez spécifier l'endroit où le contenu de l'étiquette est aligné dans la zone d'affichage de l'étiquette en définissant l'alignement vertical et horizontal. Par défaut, les étiquettes sont centrées verticalement dans leur zone d'affichage. Par défaut, les étiquettes contenant uniquement du texte sont alignées sur le bord de départ ; les étiquettes contenant uniquement des images sont alignées horizontalement et au centre.
JTextField – Un composant léger qui permet d'éditer des lignes de texte uniques.
JButton – une instance de la classe JButton. Utilisé pour créer des boutons similaires à "Connexion" dans l'exemple.
D'accord, cet article touche à sa fin. Ce qui est mentionné ici ne sont que des connaissances de base. Avec cette base, il n'est pas difficile de concevoir une interface utilisateur graphique plus complexe !
Pour plus d'articles liés à l'introduction de la conception d'interface utilisateur graphique Java (Swing), veuillez faire attention au site Web PHP chinois !