introduction jfc
In diesem Tutorial werden die Grundlagen der GUI-Programmierung (Graphical User Interface) und der Java Foundation Classes oder JFC in Java erläutert:
In unseren vorherigen Tutorials haben wir Themen behandelt, die von den Grundlagen von Java-ähnlichen Datentypen, Variablen, Entscheidungsfindung und Schleifenkonstrukten usw. bis zu Arrays, Sammlungen und Methoden in Java reichen.
Wir haben auch das Konzept von Multithreading und Ausnahmen diskutiert. Danach haben wir die Java OOPS-Unterstützung gelernt. Mit all diesen Konzepten können wir in Java Anwendungen auf hoher Ebene entwickeln, die wiederverwendbar und robust sowie in sich geschlossen sind.
=> Hier finden Sie A-Z der Java-Schulungsanleitungen.
In diesem Tutorial beginnen wir unsere Diskussion über die grafische Entwicklung von Anwendungen in Java. Wie alle anderen Konzepte bietet Java zahlreiche wiederverwendbare Grafikklassen und APIS, damit wir unsere grafische Benutzeroberfläche (GUI) entwickeln können.
Was du lernen wirst:
Was ist eine grafische Benutzeroberfläche in Java?
Grafische Benutzeroberfläche oder einfach „GUI“ genannt, ist ein allgemeiner Begriff, der in der Software-Welt verwendet wird. Eine GUI stellt eine Anwendung dar, die eine visuelle Anzeige für den Benutzer mit benutzerfreundlichen Steuerelementen bietet. Eine GUI besteht im Allgemeinen aus grafischen Komponenten wie Fenstern, Rahmen, Schaltflächen, Beschriftungen usw.
Wir können diese Komponenten verwenden, um mit dem System oder sogar der Außenwelt zu interagieren. Java bietet viele APIs und wiederverwendbare Klassen, mit denen wir GUI-Anwendungen entwickeln können. Eines der ältesten von Java bereitgestellten Kits ist 'Abstract Windowing ToolKit' oder AWT. Alle neueren APIs oder Komponenten wie Swing; JavaFX usw. basieren auf dieser AWT.
Konsolenprogramme, die wir bisher geschrieben haben, sind ebenso wichtig, aber wir sollten wissen, dass alle neuesten modernen Desktop-Anwendungen grafisch aktiviert sind. Dies bedeutet, dass sie über eine gebrauchsfertige Benutzeroberfläche verfügen, die es dem Endbenutzer erleichtert, die Anwendung per Mausklick zu verwenden.
Beachten Sie, dass das Schreiben einer Benutzeroberfläche nicht so einfach ist wie das Zeichnen einiger Formen oder das Einfügen von Bildern. Die GUI enthält eine Folge von Aktivitäten, die auch einige Ereignisse auslösen, die wiederum einige Aktionen beim Aufrufen einer Komponente oder eines Teils einer Komponente ausführen, z. B. durch Klicken auf eine Schaltfläche werden einige Aktionen ausgelöst.
Eine GUI-Anwendung ist also ein Framework, das aus grafischen Komponenten und Ereignissen besteht, die für diese Komponenten ausgelöst werden können, sowie aus Aktionen, die als Ergebnis von Ereignisauslösern ausgeführt werden.
Frameworks bieten normalerweise vorkompilierte wiederverwendbare Klassen und Komponenten, die wir per Drag & Drop in den Zeichenbereich ziehen und dann die Ereignisse und Aktionen diesen Komponenten zuordnen können.
Java bietet die folgenden Haupt-Frameworks.
Java bietet die folgenden Frameworks für die GUI-Programmierung:
- Abstract Windowing Toolkit: Dies ist das älteste Framework in Java und wurde erstmals in JDK 1.0 eingeführt. Die meisten AWT-Komponenten sind mittlerweile veraltet und werden durch Java-Swing-Komponenten ersetzt.
- Swing API: Dies ist eine Reihe von grafischen Bibliotheken, die auf der Grundlage des AWT-Frameworks entwickelt wurden und Teil von Java Foundation Classes (JFC) sind. Swing hat eine modulare Architektur, bei der wir Plug-and-Play für die Komponenten verwenden können.
- JavaFX: Das neueste Framework ist ab Java 8 verfügbar.
Es gibt verschiedene grafische Frameworks von Drittanbietern wie das Standard Widget Toolkit (SWT) von Eclipse oder das Google Web Toolkit (GWT) für Android.
Java Foundation Classes (JFC)
Java bietet eine Reihe von Features und Funktionen für die Entwicklung grafischer Benutzeroberflächen oder GUIs. Diese Funktionen werden als Java Foundation Classes oder JFC bezeichnet.
Mit JFC können wir Anwendungen umfangreiche grafische Funktionen hinzufügen und sie interaktiver gestalten. JFC enthält eine Reihe grafischer Komponenten, die einfach in unsere Anwendung eingesteckt und gemäß unseren Anforderungen programmiert werden können. Die Programmierung dieser Komponenten erfordert jedoch normalerweise nur wenige Codezeilen.
JFC enthält Klassen aus den Paketen java.awt und javax.swing. Abgesehen davon enthält es auch Klassen, die sich auf Java 3D, Java 2D, Java Accessibility usw. beziehen. JFC ist mit dem Objekt- und Komponentenmodell von Java synchronisiert und daher einfach zu verwenden.
Das folgende Diagramm fasst verschiedene Komponenten in JFC zusammen.
Wie oben gezeigt, enthält JFC sowohl AWT- als auch Swing-Klassen. Wir werden jedes dieser Themen diskutieren, während wir mit Java AWT- und Java Swing-Tutorials fortfahren. JFC bietet auch verschiedene Methoden, die wir in unserer Anwendung verwenden können.
Einige der am häufigsten verwendeten Methoden sind:
Methode | Beschreibung |
---|---|
public void add (Komponente c) | Fügt der übergeordneten Komponente eine Komponente hinzu, die die Methode aufruft. |
public void setSize (int width, int height) | Legt die Größe einer Komponente mit einer bestimmten Breite und Höhe fest. |
public void setLayout (LayoutManager m) | Legen Sie den angegebenen Layout-Manager für diese Komponente fest. |
public void setVisible (boolean b) | Stellen Sie die Sichtbarkeit der Komponenten gemäß dem Booleschen Wert ein. Standardmäßig ist die Sichtbarkeit falsch. |
Lassen Sie uns nun die GUI-Komponenten allgemein diskutieren. In unseren nachfolgenden Tutorials werden wir dann die AWTand Swing-Pakete und ihre Komponenten speziell diskutieren.
Fensterkomponenten
Wir wissen, dass der übergeordnete Container einer GUI-Anwendung ein Fenster ist, das einen oder mehrere Frames enthalten kann.
Eine GUI enthält im Allgemeinen Benutzeroberflächenelemente oder die Elemente, die als Teil der GUI in der Anwendung angezeigt werden.
Diese Fensterkomponenten lauten wie folgt:
- Informationselemente: Die Elemente oder Komponenten, die uns Informationen wie Beschriftungen, Symbole, Banner oder Nachrichtendialoge liefern.
- Eingabesteuerung: Textfelder, Schaltflächen, Dropdown-Listen, Kontrollkästchen, Optionsfelder usw. sind die Eingabesteuerelemente, mit denen wir Daten vom Benutzer lesen können.
- Navigationskomponenten: Komponenten wie das Menü, Seitenleisten, Breadcrumbs usw. helfen uns, durch die Anwendung zu navigieren.
Lassen Sie uns nun einige wichtige Komponenten in der GUI beschreiben.
Rahmen in Java
Ein Rahmen ist ein grafisches Fenster, das auf dem Bildschirm angezeigt wird. Ein Frame kann als Komponente betrachtet werden. Da er jedoch ein physisches Fenster bildet, das auf dem Bildschirm angezeigt wird, wird er anders behandelt als die anderen Komponenten. Ein Rahmen kann auch andere grafische Komponenten wie Schaltflächen, Textfelder usw. und Bedienfelder enthalten.
Frames verfügen auch über Methoden, die von anderen Komponenten nicht unterstützt werden. 'Java.awt.Frame' repräsentiert eine Klasse in AWT, während JFrame die Klasse ist, die im Java Swing-Paket enthalten ist, das einen Frame darstellt.
Daher erstellt jede GUI-Anwendung zunächst ein JFrame-Objekt, das das Hauptfenster bildet. Sobald das JFrame-Objekt erstellt wurde, können wir seine sichtbare Eigenschaft auf true setzen, indem wir setVisible ('true') aufrufen. Dann können wir die anderen Komponenten in diesem Rahmen ziehen und ablegen.
Alle GUI-Komponenten, einschließlich Frames, haben einige gemeinsame Eigenschaften, da sie Teil einer oben gezeigten gemeinsamen Vererbungshierarchie sind. Wir können also sagen, dass das Java Swing-Paket einen leistungsstarken Fall von Code-Sharing enthält.
Die folgende Abbildung zeigt ein typisches Frame-Fenster im GUI-Editor.
flvto lässt mich nicht konvertieren
Wie wir aus der obigen Abbildung sehen können, ist das äußerste Fenster im Design-Editor (markiert mit einem kleineren roten Pfeil) der Rahmen. Innerhalb dieses Rahmens befinden sich verschiedene andere oder untergeordnete Komponenten des Rahmens.
Dies geht aus der Tafel auf der linken Seite hervor, die eine Baumstruktur der Komponenten zeigt. Wie durch einen größeren roten Pfeil gekennzeichnet, ist JFrame die Stammkomponente, und alle anderen Komponenten sind die untergeordneten Komponenten.
JPanel In Java
Der JPanel-Container ist Teil des Swing-Pakets in Java. JPanel speichert eine Gruppe von Komponenten. JPanel organisierte die Komponenten anhand des von ihm festgelegten Layouts. Verschiedene Layouts können JPanel dabei helfen, die Komponenten besser zu organisieren.
JPanel wird als grundlegender Baustein für das Komponentenlayout in einem Rahmen oder in anderen Panels betrachtet. Eine GUI-Anwendung enthält normalerweise Frame als Hauptfenster und ein oder mehrere Bedienfelder, in denen verschiedene Komponenten gespeichert und organisiert werden können.
Das folgende Bild zeigt ein einfaches Beispiel eines Panels innerhalb eines Rahmens.
Wie oben gezeigt, ist ein Panel-Container in einen Frame-Fenstercontainer eingebettet. Wir können ein oder mehrere Panels oder sogar ein Panel innerhalb eines Panels haben. Dann können wir einen beliebigen Layout-Manager auf das Bedienfeld anwenden, der die Komponenten oder Elemente innerhalb des Bedienfelds organisiert. Der Standard-Layout-Manager für JPanel ist 'FlowLayout'.
GUI-Layouts in Java
Der Java-Container verwendet ein automatisches Layout der Komponenten auf dem Bildschirm. Die Größe und Position der Komponenten wird jedoch vom „Layout-Manager“ übernommen. Der Layout-Manager wird zur Entwurfszeit für einen Container festgelegt. Sie kann auch dynamisch geändert werden.
In der Java-Benutzeroberfläche häufig verwendete Layouts sind:
# 1) BorderLayout
Das Rahmenlayout unterteilt die Komponente in 5 Bereiche, wie unten gezeigt.
Von diesen sind 4 Bereiche, nämlich 'Nord', 'Süd', 'Ost' und 'West', nicht in der Größe veränderbar. Der Bereich 'Mitte' kann in der Größe geändert werden. Beachten Sie, dass in jedem Bereich nur eine Komponente begrenzt ist und Panels für mehrere Komponenten verwendet werden können.
# 2) FlowLayout: Dieses Layout wird verwendet, um mehrere Komponenten aufzunehmen. Mehrere Komponenten sind horizontal angeordnet und werden umwickelt, wenn die Behälterbreite erschöpft ist. Außerdem werden Komponenten in der Reihenfolge von links nach rechts angezeigt.
# 3) BoxLayout: Bei Verwendung des Box-Layouts werden die Komponenten entweder vertikal oder horizontal angeordnet. Diese Anordnung des Kastenlayouts ist unabhängig von der Behältergröße. Die Komponenten im Container sind so eingestellt, dass sie den Container füllen und identische Größen haben.
Dies waren einige der wichtigen und gemeinsamen Komponenten, die wir in der GUI-Entwicklung haben. In unseren nachfolgenden Tutorials zu AWT und Swing werden wir uns mit den Details der anderen Komponenten befassen, die in diesen Paketen enthalten sind.
Häufig gestellte Fragen
F # 1) Was ist GUI-Programmierung?
Antworten: Die Programme wurden unter Verwendung grafischer Komponenten entwickelt, die unter Verwendung des Zeigegeräts mit dem Computer interagieren und ereignisgesteuert sind, d. H. Sie führen einige Aktionen aus, wenn bestimmte Ereignisse ausgelöst werden, und werden als GUI-Programmierung bezeichnet.
Eine GUI-Programmierung verwendet GUI-Frameworks, mit denen wir grafische Komponenten direkt einbinden und verwenden können.
F # 2) Welche GUI soll mit Java verwendet werden?
Antwort: Java unterstützt einige der besten Frameworks, mit denen wir GUI-Anwendungen entwickeln können, wie unten gezeigt:
- JavaFX.
- Swing GUI Java.
- AWT: Abstract Windowing Toolkit.
- SWT-Standard Widget Toolkit.
- Apache Pivot.
- SwingX.
- JGoodies.
- QtJambi.
F # 3) Was sind die Vorteile einer GUI?
Antworten: Das GUI-Programm macht Anwendungen interaktiv, intuitiv und einfacher zu bedienen und zu lernen. Da sie dem Benutzer grafische Darstellungen bieten, wirken sich die Aktionen effektiver aus und wir erhalten sofort visuelles Feedback zur Anwendung.
F # 4) Was ist die JavaFX-API?
Antworten: JavaFX ist die neueste Java-Bibliothek, die im nativen Java-Code geschrieben wurde und Klassen und Schnittstellen enthält. JavaFX kann verwendet werden, um GUI-Anwendungen in Java-Versionen später als Java 8 zu entwerfen.
F # 5) Ist Java gut für die GUI?
Antworten: Obwohl Java über mehr Tools zum Entwickeln von GUI-Anwendungen und die beste Unterstützung verfügt, ist es nicht so schnell und effizient wie die MFC-Bibliothek von C ++, die fast alle Funktionen zum Entwickeln erweiterter GUI-Anwendungen bietet.
Fazit
In diesem Tutorial haben wir uns mit der GUI-Programmierung in Java befasst. Wir haben einige wichtige Konzepte der GUI-Programmierung in Java vorgestellt und einen Überblick über die von Java unterstützten GUI-Frameworks erhalten. Wir haben die Übersicht über die JFC-Bibliothek besprochen.
=> Überprüfen Sie ALLE Java-Tutorials hier.
Literatur-Empfehlungen
- Einführung in die Java-Programmiersprache - Video-Tutorial
- OOP Java: Einführung in die objektorientierte Programmierung in Java
- Java Float Tutorial mit Programmierbeispielen
- Java Double - Tutorial mit Programmierbeispielen
- Java SWING Tutorial: Container-, Komponenten- und Ereignisbehandlung
- Java Reverse String: Tutorial mit Programmierbeispielen
- Java-Komponenten: Java Platform, JDK, JRE und Java Virtual Machine
- Java String compareTo-Methode mit Programmierbeispielen