Schwingen ist eine Java Foundation Classes [JFC]-Bibliothek und eine Erweiterung des Abstract Window Toolkit [AWT]. Java Swing bietet im Vergleich zu AWT eine deutlich verbesserte Funktionalität, neue Komponenten, erweiterte Komponentenfunktionen und eine hervorragende Ereignisverarbeitung mit Drag-and-Drop-Unterstützung.
Einführung von Java Swing
Swing verfügt über etwa viermal so viele Benutzeroberflächenkomponenten (UI) wie AWT und ist Teil der Standard-Java-Distribution. Aufgrund der heutigen GUI-Anforderungen von Anwendungen ist AWT eine begrenzte Implementierung, die nicht ganz in der Lage ist, die Komponenten bereitzustellen, die für die Entwicklung komplexer GUIs erforderlich sind, die in modernen kommerziellen Anwendungen erforderlich sind. Der AWT-Komponentensatz weist einige Fehler auf und beansprucht im Vergleich zu entsprechenden Swing-Ressourcen viele Systemressourcen. Netscape stellte seine Internet Foundation Classes [IFC]-Bibliothek für die Verwendung mit Java vor. Seine Klassen erfreuten sich großer Beliebtheit bei Programmierern, die GUIs für kommerzielle Anwendungen erstellten.
- Swing ist eine Reihe von APIs (API – eine Reihe von Klassen und Schnittstellen).
- Swing wird zum Entwerfen grafischer Benutzeroberflächen bereitgestellt
- Swing ist eine Erweiterungsbibliothek zum AWT (Abstract Window Toolkit). 17:00 – 17:30 Uhr
- Enthält neue und verbesserte Komponenten, die das Aussehen und die Funktionalität von GUIs verbessern.
- Swing kann zum Erstellen (Entwickeln) der eigenständigen Swing-GUI-Apps als Servlets und Applets verwendet werden
- Es verwendet eine Modell-/Ansichtsdesign-Architektur.
- Swing ist tragbarer und flexibler als AWT, der Swing ist auf dem AWT aufgebaut.
- Swing ist vollständig in Java geschrieben.
- Java Swing-Komponenten sind plattformunabhängig und die Swing-Komponenten sind leichtgewichtig.
- Swing unterstützt ein steckbares Erscheinungsbild und Swing bietet leistungsstärkere Komponenten.
- wie Tabellen, Listen, Bildlauffenster, Farbauswahl, Registerfenster usw.
- Weiterer Schwung folgt MVC.
Unterschied zwischen Java Swing und Java AWT
Es gibt bestimmte Punkte, in denen sich Java Swing von Java AWT unterscheidet, wie unten erwähnt:
| Java AWT | Java-Swing Beispiel einer Liste in Java |
|---|---|
| Java AWT ist eine API zur Entwicklung von GUI-Anwendungen in Java. | Swing ist Teil der Java Foundation Classes und wird zum Erstellen verschiedener Anwendungen verwendet. |
| Die Komponenten von AWT haben ein hohes Gewicht. | Die Komponenten von Java Swing sind leichtgewichtig. |
| Komponenten sind plattformabhängig. | Komponenten sind plattformunabhängig. |
| Die Ausführungszeit ist mehr als Swing. | Die Ausführungszeit ist kürzer als bei AWT. |
| AWT-Komponenten erfordern das Paket java.awt. | Swing-Komponenten erfordern das Paket javax.swing. |
Weitere Informationen zum Thema finden Sie unter Java Swing vs. Java AWT .
Was ist JFC?
JFC steht für Java Foundation Classes. JFC ist eine Gruppe von GUI-Komponenten, die Desktop-Anwendungen vereinfachen. Viele Programmierer denken, dass JFC und Swing ein und dasselbe sind, aber das ist nicht so. JFC enthält Swing [ein UI-Komponentenpaket] und eine ganze Reihe anderer Elemente:
- Ausschneiden und Einfügen: Unterstützung für die Zwischenablage.
- Barrierefreiheitsfunktionen: Zielt auf die Entwicklung von GUIs für Benutzer mit Behinderungen ab.
- Die Desktop-Farbfunktionen wurden erstmals in Java 1.1 eingeführt
- Java 2D: Es verfügt über eine verbesserte Unterstützung für Farben, Bilder und Text.
Merkmale der Swing-Klasse
- Steckbare Optik und Haptik.
- Verwendet MVC-Architektur.
- Leichtbaukomponenten
- Plattformunabhängig
- Erweiterte Funktionen wie JTable, JTabbedPane, JScollPane usw.
- Java ist eine plattformunabhängige Sprache und läuft auf jedem Client-Rechner. Das Erscheinungsbild der GUI, die einem plattformspezifischen Betriebssystem gehört und von diesem bereitgestellt wird, hat einfach keinen Einfluss auf die GUI einer Anwendung, die mit Swing-Komponenten erstellt wurde.
- Leichtbauteile: Beginnend mit dem JDK 1.1, dessen AWT-unterstützte Leichtbaukomponentenentwicklung. Damit eine Komponente als leichtgewichtig gilt, darf sie nicht von Systemklassen abhängen, die nicht auf Java basieren. Swing-Komponenten verfügen über eine eigene Ansicht, die von den Look-and-Feel-Klassen von Java unterstützt wird.
- Plug-in-Look and Feel: Mit dieser Funktion kann der Benutzer das Erscheinungsbild von Swing-Komponenten ändern, ohne eine Anwendung neu starten zu müssen. Die Swing-Bibliothek unterstützt das Erscheinungsbild und die Funktionsweise von Komponenten, die auf allen Plattformen gleich bleiben, egal wo das Programm ausgeführt wird. Die Swing-Bibliothek bietet eine API, die echte Flexibilität bei der Festlegung des Erscheinungsbilds der GUI einer Anwendung bietet
- Hochgradig anpassbar – Swing-Bedienelemente können auf sehr einfache Weise angepasst werden, da das visuelle Erscheinungsbild unabhängig von der internen Darstellung ist.
- Umfangreiche Steuerung – Swing bietet einen umfangreichen Satz erweiterter Steuerelemente wie Tree TabbedPane, Schieberegler, Farbauswahl und Tabellensteuerelemente.
Hierarchie der Swing-Klassen

Die MVC-Verbindung
- Im Allgemeinen ist eine visuelle Komponente eine Zusammensetzung aus drei unterschiedliche Aspekte:
- Die Art und Weise, wie die Komponente aussieht, wenn sie auf dem Bildschirm gerendert wird.
- Die Art und Weise, wie die Komponente auf den Benutzer reagiert.
- Die mit der Komponente verknüpften Statusinformationen.
- Im Laufe der Jahre hat sich eine Komponentenarchitektur als außerordentlich effektiv erwiesen: – Model View Controller oder MVC kurz gesagt.
- In der MVC-Terminologie ist das Modell entspricht den Statusinformationen, die der Komponente zugeordnet sind.
- Der Sicht bestimmt, wie die Komponente auf dem Bildschirm angezeigt wird, einschließlich aller Aspekte der Ansicht, die vom aktuellen Status des Modells betroffen sind.
- Der Regler bestimmt, wie die Komponente auf den Benutzer reagiert.
Die einfachsten Swing-Komponenten verfügen über Fähigkeiten, die weit über die AWT-Komponenten hinausgehen:
- Swing-Schaltflächen und Beschriftungen können Bilder anstelle von oder zusätzlich zu Text anzeigen.
- Die Ränder der meisten Swing-Komponenten können problemlos geändert werden. Beispielsweise ist es einfach, einen 1-Pixel-Rand um die Außenseite eines Swing-Etiketts anzubringen.
- Schaukelteile müssen nicht rechteckig sein. Knöpfe können beispielsweise rund sein.
- Jetzt können die neuesten Assertive-Technologien wie Bildschirmleseprogramme problemlos Informationen aus Swing-Komponenten abrufen. Beispiel: Ein Screenreader-Tool kann problemlos den Text erfassen, der auf einer Swing-Schaltfläche oder einem Swing-Etikett angezeigt wird.
Beispiel für Java Swing-Programme
Beispiel 1: Entwickeln Sie ein Programm mit Label (Swing), um die Nachricht GFG WEB Site anzuzeigen. Klicken Sie auf:
Java
CSS-Hintergrund
// Java program using label (swing)> // to display the message GFG WEB Site Click> import> java.io.*;> import> javax.swing.*;> // Main class> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Creating instance of JFrame> >JFrame frame =>new> JFrame();> >// Creating instance of JButton> >JButton button =>new> JButton(>' GFG WebSite Click'>);> >// x axis, y axis, width, height> >button.setBounds(>150>,>200>,>220>,>50>);> >// adding button in JFrame> >frame.add(button);> >// 400 width and 500 height> >frame.setSize(>500>,>600>);> >// using no layout managers> >frame.setLayout(>null>);> >// making the frame visible> >frame.setVisible(>true>);> >}> }> |
im Linux-Verzeichnis umbenennen
>
>
Ausgabe:

Beispiel 2: Schreiben Sie ein Programm, um drei Schaltflächen mit der Überschrift „OK“, „SUBMIT“ und „CANCEL“ zu erstellen.
Java
// Java program to create three buttons> // with caption OK, SUBMIT, CANCEL> import> java.awt.*;> class> button {> >button()> >{> >Frame f =>new> Frame();> >// Button 1 created> >// OK button> >Button b1 =>new> Button(>'OK'>);> >b1.setBounds(>100>,>50>,>50>,>50>);> >f.add(b1);> >// Button 2 created> >// Submit button> >Button b2 =>new> Button(>'SUBMIT'>);> >b2.setBounds(>100>,>101>,>50>,>50>);> >f.add(b2);> > >// Button 3 created> >// Cancel button> >Button b3 =>new> Button(>'CANCEL'>);> >b3.setBounds(>100>,>150>,>80>,>50>);> >f.add(b3);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String a[]) {>new> button(); }> }> |
>
>
Ausgabe:

Beispiel 3: Programm zum Hinzufügen eines Kontrollkästchens im Frame
Java
// Java Swing Program to Add Checkbox> // in the Frame> import> java.awt.*;> // Driver Class> class> Lan {> >// Main Function> >Lan()> >{> >// Frame Created> >Frame f =>new> Frame();> >Label l1 =>new> Label(>'Select known Languages'>);> >l1.setBounds(>100>,>50>,>120>,>80>);> >f.add(l1);> >// CheckBox created> >Checkbox c2 =>new> Checkbox(>'Hindi'>);> >c2.setBounds(>100>,>150>,>50>,>50>);> >f.add(c2);> >// CheckBox created> >Checkbox c3 =>new> Checkbox(>'English'>);> >c3.setBounds(>100>,>200>,>80>,>50>);> >f.add(c3);> >// CheckBox created> >Checkbox c4 =>new> Checkbox(>'marathi'>);> >c4.setBounds(>100>,>250>,>80>,>50>);> >f.add(c4);> >f.setSize(>500>,>500>);> >f.setLayout(>null>);> >f.setVisible(>true>);> >}> >public> static> void> main(String ar[]) {>new> Lan(); }> }> |
CSS für Zeilenumbruch
>
>
Ausgabe:

Komponenten der Swing-Klasse: Der Prozentsatz der Aufgabe
| Klasse | Beschreibung |
|---|---|
| Komponente | Eine Komponente ist die abstrakte Basisklasse für die nicht menübasierten Benutzeroberflächensteuerelemente von Java SWING. Komponenten stellen ein Objekt mit einer grafischen Darstellung dar. |
| Container | Ein Container ist eine Komponente, die Java SWING-Komponenten enthalten kann |
| JComponent | Eine JComponent ist eine Basisklasse für alle Swing-UI-Komponenten. Um eine Swing-Komponente zu verwenden, die von JComponent erbt, muss sich die Komponente in einer Einschlusshierarchie befinden, deren Stamm ein Java Swing-Container der obersten Ebene ist. |
| JLabel | Ein JLabel ist eine Objektkomponente zum Platzieren von Text in einem Container. |
| JButton | Diese Klasse erstellt eine beschriftete Schaltfläche. |
| JColorChooser | Ein JColorChooser bietet einen Bereich mit Steuerelementen, mit denen der Benutzer eine Farbe bearbeiten und auswählen kann. |
| JCheckBox | Eine JCheckBox ist eine grafische (GUI) Komponente, die sich entweder im Status „Ein“ (wahr) oder „Aus“ (falsch) befinden kann. |
| JRadioButton | Die JRadioButton-Klasse ist eine grafische (GUI) Komponente, die sich entweder im Ein-Zustand (wahr) oder im Aus-Zustand (Falsch) befinden kann. in der Gruppe |
| JList | Eine JList-Komponente repräsentiert den Benutzer mit der scrollbaren Liste von Textelementen. |
| JComboBox | Eine JComboBox-Komponente präsentiert dem Benutzer ein angezeigtes Auswahlmenü. |
| JTextField | Ein JTextField-Objekt ist eine Textkomponente, die die Bearbeitung einer einzelnen Textzeile ermöglicht. |
| JPasswordField | Ein JPasswordField-Objekt ist eine Textkomponente, die auf die Passworteingabe spezialisiert ist. |
| JTextArea | Ein JTextArea-Objekt ist eine Textkomponente, die die Bearbeitung mehrerer Textzeilen ermöglicht. |
| Imagelcon | Ein ImageIcon-Steuerelement ist eine Implementierung der Icon-Schnittstelle, die Symbole aus Bildern malt |
| JScrollbar | Ein JScrollbar-Steuerelement stellt eine Bildlaufleistenkomponente dar, um Benutzern die Auswahl aus Bereichswerten zu ermöglichen. |
| JOptionPane | JOptionPane bietet eine Reihe von Standarddialogfeldern, die Benutzer zur Eingabe eines Werts oder einer Sache auffordern. |
| JFileChooser | Ein JFileChooser it Controls stellt ein Dialogfenster dar, aus dem der Benutzer eine Datei auswählen kann. |
| JProgressBar | Während sich die Aufgabe dem Abschluss nähert, zeigt die Fortschrittsleiste den Prozentsatz der Aufgabe bei Abschluss an. |
| JSlides | Ein JSlider dieser Klasse ermöglicht es dem Benutzer, grafisch (GUI) einen Wert auszuwählen, indem er einen Knopf innerhalb eines begrenzten Intervalls verschiebt. |
| JSpinner | Ein JSpinner dieser Klasse ist eine einzeilige Eingabe, bei der das Feld dem Benutzer die Auswahl ermöglicht, indem er eine Zahl oder einen Objektwert aus einer geordneten Sequenz verwendet. |