Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

Was ist Swing in Java?

Java Swing ist ein ausgefeiltes, plattformunabhängiges GUI-Toolkit, das das Abstract Window Toolkit (AWT) erweitert. Es bietet eine reiche Auswahl an Widgets – Buttons, Tabellen, Bäume und mehr – und ermöglicht Entwicklern, gepflegte Desktop-Anwendungen zu erstellen, ohne grundlegende Komponenten neu zu erfinden.

Als Teil der Java Foundation Classes (JFC) baut Swing auf AWTs Kernfunktionalität auf und bietet leichte, anpassbare Komponenten. Das Ergebnis ist ein Framework, das erweiterte UI-Features unterstützt, wie Look-and-Feel-Änderungen, benutzerdefiniertes Painting und Data Binding.

In diesem Tutorial meistern Sie:

Java Swing Klassenhierarchie-Diagramm

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

Alle Swing-Komponenten erben von JComponent und können zu Container-Klassen hinzugefügt werden.

Was ist eine Container-Klasse?

Container-Klassen sind das Rückgrat jeder Swing-UI – sie halten und organisieren andere Komponenten. Mindestens ein Container ist für eine Swing-Anwendung erforderlich. Es gibt drei primäre Container-Typen:

  1. JPanel – Ein leichtgewichtiger, nicht-Fenster-Container zum Gruppieren von Komponenten.
  2. JFrame – Ein Top-Level-Fenster, das Titelleiste, Rahmen und Systemmenü enthält.
  3. JDialog – Ein modales oder modelloses Popup-Fenster für Benutzeraufforderungen.

Was ist GUI in Java?

Eine Graphical User Interface (GUI) in Java liefert eine intuitive visuelle Ebene für Benutzer, um mit Anwendungen zu interagieren. Durch das Zusammenstellen von Buttons, Labels, Textfeldern und anderen Widgets erstellen Entwickler ansprechende Erfahrungen, die die zugrundeliegende Logik abstrahieren.

GUI in Java erstellen (Schritt-für-Schritt)

Nachfolgend ein praktischer Walkthrough, der veranschaulicht, wie man ein Basis-Fenster erstellt und schrittweise Komponenten hinzufügt.

Schritt 1 – Neue Java-Datei erstellen

Kopieren Sie den folgenden Code in Ihren Editor:

import javax.swing.*;
class GuiDemo {
    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);
        frame.setVisible(true);
    }
}

Schritt 2 – Kompilieren und Ausführen

Speichern Sie die Datei, kompilieren Sie mit javac GuiDemo.java, dann führen Sie mit java GuiDemo aus. Ein 300 × 300 Fenster mit einem einzelnen Button sollte erscheinen.

Schritt 3 – Weiteren Button hinzufügen

Ändern Sie den Code, um einen zweiten Button einzuschließen:

import javax.swing.*;
class GuiDemo {
    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 4 – Layout-Problem beobachten

Die Ausführung zeigt nun zwei überlappende Buttons, da der Standard-Layout-Manager für JFrame BorderLayout ist, der Komponenten in fünf distincte Bereiche platziert. Ohne Angabe eines Bereichs ersetzen nachfolgende Komponenten die vorherigen.

Java Layout-Manager

Layout-Manager steuern, wie Komponenten innerhalb von Containern angeordnet werden. Die Wahl des richtigen Managers ist entscheidend für responsive, wartbare GUIs. Die am häufigsten verwendeten Manager sind:

BorderLayout

BorderLayout teilt einen Container in fünf Bereiche auf: NORTH, SOUTH, EAST, WEST und CENTER. Er ist der Standard-Manager für JFrame.

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

FlowLayout

FlowLayout ordnet Komponenten sequenziell in einer Reihe an und bricht bei Bedarf in die nächste Zeile um. Er ist der Standard-Manager für JPanel.

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

GridBagLayout

GridBagLayout bietet die größte Flexibilität, da Komponenten mehrere Zeilen oder Spalten belegen und präzise innerhalb eines Gitters ausgerichtet werden können.

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

Beispiel: Einfaches Chat-Fenster erstellen

Nachfolgend ein vollständiges Programm, das demonstriert, wie Menüs, ein Textbereich und ein Steuerungs-Panel zu einer kohärenten Chat-Oberfläche kombiniert werden.

Java Swing Tutorial: Robuste GUI-Anwendungen erstellen

Versuchen Sie, es selbst zu programmieren, bevor Sie die Lösung ansehen.

// Eine vollständige Swing-Anwendung mit Menüs, Textbereich und Steuerelementen
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);
        // Menüleiste
        JMenuBar menuBar = new JMenuBar();
        JMenu fileMenu = new JMenu("FILE");
        JMenu helpMenu = new JMenu("Help");
        menuBar.add(fileMenu);
        menuBar.add(helpMenu);
        JMenuItem openItem = new JMenuItem("Open");
        JMenuItem saveItem = new JMenuItem("Save as");
        fileMenu.add(openItem);
        fileMenu.add(saveItem);
        // Unteres Panel mit FlowLayout (Standard)
        JPanel panel = new JPanel();
        panel.add(new JLabel("Enter Text"));
        panel.add(new JTextField(10));
        panel.add(new JButton("Send"));
        panel.add(new JButton("Reset"));
        // Textbereich in der Mitte
        JTextArea textArea = new JTextArea();
        // Komponenten zum Frame hinzufügen mit BorderLayout
        frame.getContentPane().add(BorderLayout.SOUTH, panel);
        frame.getContentPane().add(BorderLayout.NORTH, menuBar);
        frame.getContentPane().add(BorderLayout.CENTER, textArea);
        frame.setVisible(true);
    }
}

Java

  1. Java EE Applikationen auf Microsoft Azure deployen: Schritt-für-Schritt Guide
  2. String-Listen in VHDL erstellen: Best Practices & Beispiel
  3. Java Arrays Tutorial: Deklaration, Erstellung und Initialisierung – Beispielcode
  4. Array von Objekten in Java erstellen: Schritt-für-Schritt-Anleitung
  5. Zufallszahlen in Java generieren: Praktischer Leitfaden mit Random und Math.random
  6. Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
  7. Char in String in Java konvertieren – Praxisbeispiele und Best Practices
  8. String in Java mit Rekursion umkehren – Schritt-für-Schritt-Anleitung
  9. Java 10: Application Class-Data Sharing (AppCDS, JEP 310) – Schnellerer App-Start
  10. PLCnext Konsolenanwendung mit C# entwickeln: Einsteigerleitfaden