Java Swing Tutorial: So erstellen Sie eine GUI in Java mit Beispielen

Inhaltsverzeichnis:

Anonim

Was ist Swing in Java?

Swing in Java ist ein GUI-Toolkit (Graphical User Interface), das die GUI-Komponenten enthält. Swing bietet eine Vielzahl von Widgets und Paketen, um anspruchsvolle GUI-Komponenten für Java-Anwendungen zu erstellen. Swing ist Teil von Java Foundation Classes (JFC), einer API für Java-Programme, die eine grafische Benutzeroberfläche bereitstellen.

Die Java Swing-Bibliothek basiert auf dem Java Abstract Widget Toolkit ( AWT ), einem älteren, plattformabhängigen GUI-Toolkit. Sie können die Java-GUI-Programmierkomponenten wie Schaltfläche, Textfeld usw. aus der Bibliothek verwenden und müssen die Komponenten nicht von Grund auf neu erstellen.

In diesem Java Swing-Tutorial lernen Sie:

  • Was ist Swing in Java?
  • Was ist eine Containerklasse?
  • Was ist GUI in Java?
  • Java GUI Beispiel
  • Java Layout Manager
  • Java BorderLayout
  • Java FlowLayout
  • Java GridBagLayout

Hierarchiediagramm der Java-Swing-Klasse

Java Swing Class Hierarchiediagramm

Alle Komponenten in Java Swing sind JComponent, die Containerklassen hinzugefügt werden können.

Was ist eine Containerklasse?

Containerklassen sind Klassen, die andere Komponenten enthalten können. Zum Erstellen einer Java-GUI benötigen wir also mindestens ein Containerobjekt. Es gibt 3 Arten von Java Swing-Containern.

  1. Panel : Es ist ein reiner Container und kein Fenster für sich. Der einzige Zweck eines Panels besteht darin, die Komponenten in einem Fenster zu organisieren.
  2. Rahmen : Es ist ein voll funktionsfähiges Fenster mit Titel und Symbolen.
  3. Dialog : Man kann sich ein Popup-Fenster vorstellen, das angezeigt wird, wenn eine Nachricht angezeigt werden muss. Es ist kein voll funktionsfähiges Fenster wie der Frame.

Was ist GUI in Java?

GUI (Graphical User Interface) in Java ist ein benutzerfreundlicher Visual Experience Builder für Java-Anwendungen. Es besteht hauptsächlich aus grafischen Komponenten wie Schaltflächen, Beschriftungen, Fenstern usw., über die der Benutzer mit einer Anwendung interagieren kann. Die grafische Benutzeroberfläche spielt eine wichtige Rolle beim Erstellen einfacher Schnittstellen für Java-Anwendungen.

Java GUI Beispiel

Lassen Sie uns nun in diesem Swing Java-Tutorial die GUI mit Java Swing-Beispielen verstehen.

Beispiel : So lernen Sie die Java-GUI-Programmierung in diesem Java-GUI-Tutorial Schritt 1) Kopieren Sie den folgenden Code in einen Editor

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);}}

Schritt 2) Speichern, kompilieren und führen Sie den Code aus.Schritt 3) Fügen wir nun einen Rahmen zu unserem Rahmen hinzu. Kopieren Sie den folgenden Code aus einem bestimmten Java-GUI-Beispiel in einen Editor

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);}}

Schritt 4) Führen Sie den Code aus. Sie erhalten einen großen Knopf

Schritt 5) Wie wäre es mit zwei Schaltflächen? Kopieren Sie den folgenden Code in einen Editor.

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);}}

Schritt 6) Speichern, kompilieren und führen Sie das Programm aus.Schritt 7) Unerwartete Ausgabe =? Schaltflächen überlappen sich.

Java Layout Manager

Der Layout-Manager wird verwendet, um die Java-Komponenten der GUI in einem Container zu gestalten (oder anzuordnen). Es gibt viele Layout-Manager, aber die am häufigsten verwendeten sind:

Java BorderLayout

A BorderLayoutplatziert Komponenten in bis zu fünf Bereichen: oben, unten, links, rechts und in der Mitte. Es ist der Standard-Layout-Manager für jeden Java-JFrame

Java FlowLayout

FlowLayoutist der Standard-Layout-Manager für jeden JPanel. Es werden einfach Komponenten in einer Reihe nacheinander angeordnet.

Java GridBagLayout

Es ist das anspruchsvollere aller Layouts. Es richtet Komponenten aus, indem es sie in einem Zellenraster platziert, sodass Komponenten mehr als eine Zelle umfassen können.

Schritt 8) Wie wäre es mit einem Chat-Frame wie unten?

Versuchen Sie, sich selbst zu codieren, bevor Sie sich das folgende Programm ansehen.

//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);}}