Tutoriel Java Swing: Comment créer une interface graphique en Java avec des exemples

Table des matières:

Anonim

Qu'est-ce que Swing en Java?

Swing in Java est une boîte à outils d'interface utilisateur graphique (GUI) qui comprend les composants GUI. Swing fournit un riche ensemble de widgets et de packages pour créer des composants GUI sophistiqués pour les applications Java. Swing fait partie de Java Foundation Classes (JFC), qui est une API pour les programmes Java qui fournissent une interface graphique.

La bibliothèque Java Swing est construite sur le Java Abstract Widget Toolkit ( AWT ), une ancienne boîte à outils d'interface graphique dépendante de la plate-forme. Vous pouvez utiliser les composants de programmation Java GUI tels que bouton, zone de texte, etc. de la bibliothèque et ne pas avoir à créer les composants à partir de zéro.

Dans ce didacticiel Java Swing, vous apprendrez-

  • Qu'est-ce que Swing en Java?
  • Qu'est-ce qu'une classe de conteneur?
  • Qu'est-ce que l'interface graphique en Java?
  • Exemple d'interface graphique Java
  • Gestionnaire de mise en page Java
  • Bordure Java
  • Java FlowLayout
  • Java GridBagLayout

Diagramme de hiérarchie des classes Java Swing

Diagramme de hiérarchie de classes Java Swing

Tous les composants de Java Swing sont des JComponent qui peuvent être ajoutés aux classes de conteneurs.

Qu'est-ce qu'une classe de conteneur?

Les classes de conteneur sont des classes qui peuvent avoir d'autres composants dessus. Donc, pour créer une interface graphique Java, nous avons besoin d'au moins un objet conteneur. Il existe 3 types de conteneurs Java Swing.

  1. Panel : C'est un pur conteneur et non une fenêtre en soi. Le seul but d'un Panel est d'organiser les composants sur une fenêtre.
  2. Frame : C'est une fenêtre entièrement fonctionnelle avec son titre et ses icônes.
  3. Dialogue : il peut être considéré comme une fenêtre contextuelle qui apparaît lorsqu'un message doit être affiché. Ce n'est pas une fenêtre entièrement fonctionnelle comme le Frame.

Qu'est-ce que l'interface graphique en Java?

GUI (Graphical User Interface) en Java est un générateur d'expérience visuelle facile à utiliser pour les applications Java. Il est principalement constitué de composants graphiques tels que des boutons, des étiquettes, des fenêtres, etc. grâce auxquels l'utilisateur peut interagir avec une application. L'interface graphique joue un rôle important dans la création d'interfaces simples pour les applications Java.

Exemple d'interface graphique Java

Maintenant, dans ce tutoriel Swing Java, comprenons l'interface graphique avec des exemples Java Swing.

Exemple : pour apprendre la programmation de l'interface graphique Java dans ce didacticiel de l'interface graphique Java Étape 1) Copiez le code suivant dans un éditeur

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button = new JButton("Press");frame.getContentPane().add(button); // Adds Button to content pane of frameframe.setVisible(true);}}

Étape 2) Enregistrez, compilez et exécutez le code.Étape 3) Ajoutons maintenant un bouton à notre cadre. Copiez le code suivant dans un éditeur à partir d'un exemple d'interface graphique Java donné

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Press");frame.getContentPane().add(button1);frame.setVisible(true);}}

Étape 4) Exécutez le code. Vous obtiendrez un gros bouton

Étape 5) Que diriez-vous d'ajouter deux boutons? Copiez le code suivant dans un éditeur.

import javax.swing.*;class gui{public static void main(String args[]){JFrame frame = new JFrame("My First GUI");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(300,300);JButton button1 = new JButton("Button 1");JButton button2 = new JButton("Button 2");frame.getContentPane().add(button1);frame.getContentPane().add(button2);frame.setVisible(true);}}

Étape 6) Enregistrez, compilez et exécutez le programme.Étape 7) Sortie inattendue =? Les boutons se chevauchent.

Gestionnaire de mise en page Java

Le gestionnaire de mise en page est utilisé pour mettre en page (ou organiser) les composants java de l'interface graphique à l'intérieur d'un conteneur.Il existe de nombreux gestionnaires de mise en page, mais les plus fréquemment utilisés sont:

Bordure Java

A BorderLayoutplace les composants dans cinq zones au maximum: haut, bas, gauche, droite et centre. C'est le gestionnaire de mise en page par défaut pour chaque java JFrame

Java FlowLayout

FlowLayoutest le gestionnaire de mise en page par défaut pour chaque JPanel. Il dispose simplement les composants sur une seule ligne les uns après les autres.

Java GridBagLayout

C'est la plus sophistiquée de toutes les mises en page. Il aligne les composants en les plaçant dans une grille de cellules, ce qui permet aux composants de s'étendre sur plusieurs cellules.

Étape 8) Que diriez-vous de créer un cadre de discussion comme ci-dessous?

Essayez de vous coder avant de regarder le programme ci-dessous.

//Usually you will require both swing and awt packages// even if you are working with just swings.import javax.swing.*;import java.awt.*;class gui {public static void main(String args[]) {//Creating the FrameJFrame frame = new JFrame("Chat Frame");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);//Creating the MenuBar and adding componentsJMenuBar mb = new JMenuBar();JMenu m1 = new JMenu("FILE");JMenu m2 = new JMenu("Help");mb.add(m1);mb.add(m2);JMenuItem m11 = new JMenuItem("Open");JMenuItem m22 = new JMenuItem("Save as");m1.add(m11);m1.add(m22);//Creating the panel at bottom and adding componentsJPanel panel = new JPanel(); // the panel is not visible in outputJLabel label = new JLabel("Enter Text");JTextField tf = new JTextField(10); // accepts upto 10 charactersJButton send = new JButton("Send");JButton reset = new JButton("Reset");panel.add(label); // Components Added using Flow Layoutpanel.add(tf);panel.add(send);panel.add(reset);// Text Area at the CenterJTextArea ta = new JTextArea();//Adding Components to the frame.frame.getContentPane().add(BorderLayout.SOUTH, panel);frame.getContentPane().add(BorderLayout.NORTH, mb);frame.getContentPane().add(BorderLayout.CENTER, ta);frame.setVisible(true);}}