Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Tutoriel Java Swing : Construire des Applications GUI Robustes

Qu'est-ce que Swing en Java ?

Java Swing est un toolkit GUI sophistiqué, indépendant de la plateforme, qui étend l'Abstract Window Toolkit (AWT). Il offre un riche ensemble de composants – boutons, tableaux, arbres, et plus – permettant aux développeurs de créer des applications de bureau polies sans réinventer les composants de base.

En tant que partie des Java Foundation Classes (JFC), Swing s'appuie sur les fonctionnalités de base d'AWT tout en fournissant des composants légers et personnalisables. Le résultat est un framework qui prend en charge des fonctionnalités UI avancées, telles que les changements de look-and-feel, le dessin personnalisé et la liaison de données.

Dans ce tutoriel, vous maîtriserez :

Diagramme de Hiérarchie des Classes Java Swing

Tutoriel Java Swing : Construire des Applications GUI Robustes

Tous les composants Swing héritent de JComponent et peuvent être ajoutés aux classes conteneurs.

Qu'est-ce qu'une Classe Conteneur ?

Les classes conteneurs sont l'épine dorsale de toute UI Swing – elles contiennent et organisent d'autres composants. Au minimum, une application Swing nécessite un conteneur. Il existe trois types principaux de conteneurs :

  1. JPanel – Un conteneur léger, non-fenêtre, utilisé pour grouper des composants.
  2. JFrame – Une fenêtre de niveau supérieur qui inclut une barre de titre, des bordures et un menu système.
  3. JDialog – Une fenêtre pop-up modale ou non-modale pour les invites utilisateur.

Qu'est-ce qu'une GUI en Java ?

Une Interface Utilisateur Graphique (GUI) en Java fournit une couche visuelle intuitive pour que les utilisateurs interagissent avec les applications. En assemblant boutons, étiquettes, champs de texte et autres widgets, les développeurs créent des expériences engageantes qui abstraient la logique sous-jacente.

Comment Construire une GUI en Java (Étape par Étape)

Voici une démonstration pratique illustrant comment construire une fenêtre de base et ajouter progressivement des composants.

Étape 1 – Créer un Nouveau Fichier Java

Copiez le code suivant dans votre éditeur :

import javax.swing.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Ma Première GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        JButton bouton = new JButton("Appuyer");
        frame.getContentPane().add(bouton);
        frame.setVisible(true);
    }
}

Étape 2 – Compiler et Exécuter

Enregistrez le fichier, compilez avec javac GuiDemo.java, puis exécutez avec java GuiDemo. Une fenêtre 300 × 300 contenant un seul bouton devrait apparaître.

Étape 3 – Ajouter un Autre Bouton

Modifiez le code pour inclure un second bouton :

import javax.swing.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Ma Première GUI");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(300, 300);
        JButton bouton1 = new JButton("Bouton 1");
        JButton bouton2 = new JButton("Bouton 2");
        frame.getContentPane().add(bouton1);
        frame.getContentPane().add(bouton2);
        frame.setVisible(true);
    }
}

Étape 4 – Observer le Problème de Mise en Page

L'exécution du code montre maintenant deux boutons qui se chevauchent car le gestionnaire de mise en page par défaut pour JFrame est BorderLayout, qui place les composants dans cinq régions distinctes. Sans spécifier de région, les composants suivants remplacent les précédents.

Gestionnaires de Mise en Page Java

Les gestionnaires de mise en page contrôlent la façon dont les composants sont arrangés dans les conteneurs. Choisir le bon gestionnaire est crucial pour des GUIs responsives et maintenables. Les gestionnaires les plus fréquemment utilisés sont :

BorderLayout

BorderLayout divise un conteneur en cinq zones : NORD, SUD, EST, OUEST et CENTRE. C'est le gestionnaire par défaut pour JFrame.

Tutoriel Java Swing : Construire des Applications GUI Robustes

FlowLayout

FlowLayout arrange les composants séquentiellement dans une ligne, passant à la ligne suivante si nécessaire. C'est le gestionnaire par défaut pour JPanel.

Tutoriel Java Swing : Construire des Applications GUI Robustes

GridBagLayout

GridBagLayout offre la plus grande flexibilité, permettant aux composants d'occuper plusieurs lignes ou colonnes et de s'aligner précisément dans une grille.

Tutoriel Java Swing : Construire des Applications GUI Robustes

Exemple : Construction d'une Fenêtre de Chat Simple

Voici un programme complet démontrant comment combiner menus, zone de texte et panneau de contrôle en une interface de chat cohérente.

Tutoriel Java Swing : Construire des Applications GUI Robustes

Essayez de le coder vous-même avant de revoir la solution.

// Une application Swing complète incluant menus, zone de texte et contrôles
import javax.swing.*;
import java.awt.*;
class GuiDemo {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Chat Frame");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);
        // Barre de menus
        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("FICHIER");
        JMenu helpMenu = new JMenu("Aide");
        menuBar.add(fileMenu);
        menuBar.add(helpMenu);
        JMenuItem openItem = new JMenuItem("Ouvrir");
        JMenuItem saveItem = new JMenuItem("Enregistrer sous");
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        // Panneau du bas avec FlowLayout (par défaut)
        JPanel panneau = new JPanel();
        panneau.add(new JLabel("Saisir Texte"));
        panneau.add(new JTextField(10));
        panneau.add(new JButton("Envoyer"));
        panneau.add(new JButton("Réinitialiser"));
        // Zone de texte au centre
        JTextArea textArea = new JTextArea();
        // Ajouter les composants au frame en utilisant BorderLayout
        frame.getContentPane().add(BorderLayout.SOUTH, panneau);
        frame.getContentPane().add(BorderLayout.NORTH, menuBar);
        frame.getContentPane().add(BorderLayout.CENTER, textArea);
        frame.setVisible(true);
    }
}

Java

  1. Déployer des Applications Java EE sur Microsoft Azure : Guide Étape par Étape
  2. Créer des listes de chaînes en VHDL : Bonnes pratiques et exemple
  3. Tutoriel Java Arrays : Déclaration, création et initialisation – Code d'exemple
  4. Créer un tableau d'objets en Java : Guide étape par étape
  5. Générer des Nombres Aléatoires en Java : Guide Pratique avec Random et Math.random
  6. Lecture de Fichiers en Java avec BufferedReader – Guide Pratique avec Exemples
  7. Convertir un char en String en Java - Exemples pratiques et bonnes pratiques
  8. Inverser une chaîne en Java par récursivité - Guide étape par étape
  9. Java 10 : Améliorer les performances avec le partage de données de classe (AppCDS)