Einführung in die JFC- und GUI-Programmierung in Java

Dieses Tutorial behandelt die Grundlagen der GUI-Programmierung (Graphical User Interface) und der Java Foundation Classes oder JFC in Java:

In unseren früheren Tutorials haben wir Themen behandelt, die von den Grundlagen der Java-ähnlichen Datentypen, Variablen, Entscheidungsfindung und Schleifenkonstrukte etc. bis hin zu Arrays, Collections und Methoden in Java.

Wir haben auch das Konzept von Multithreading und Exceptions besprochen. Danach haben wir die OOPS-Unterstützung von Java kennengelernt. Mit all diesen Konzepten können wir High-Level-Anwendungen in Java entwickeln, die sowohl wiederverwendbar und robust als auch in sich geschlossen sind.

=> Schauen Sie hier nach, um ein A-Z der Java-Trainings-Tutorials zu sehen.

In diesem Tutorial beginnen wir mit der Diskussion über die grafische Entwicklung von Anwendungen in Java. Wie alle anderen Konzepte stellt Java zahlreiche wiederverwendbare Grafikklassen und APIS zur Verfügung, damit wir unsere grafische Benutzeroberfläche (GUI) entwickeln können.

Was ist eine grafische Benutzeroberfläche in Java

Grafische Benutzeroberfläche oder einfach „GUI“ genannt, ist ein allgemeiner Begriff aus der Software-Welt. Eine GUI stellt eine Anwendung dar, die eine visuelle Darstellung für den Benutzer mit einfach zu bedienenden Steuerelementen hat. 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 das „Abstract Windowing ToolKit“ oder AWT. Alle neueren APIs oder Komponenten wie Swing; JavaFX, etc. basieren auf diesem AWT.

Die Konsolenprogramme, die wir bisher geschrieben haben, sind ebenso wichtig, aber wir sollten wissen, dass alle aktuellen modernen Desktop-Anwendungen graphikfähig sind. Das bedeutet, dass sie eine fertige GUI haben, die es dem Endbenutzer erleichtert, die Anwendung mit einem Mausklick zu bedienen.

Beachten Sie, dass das Schreiben einer GUI nicht so einfach ist, wie das Zeichnen einiger Formen oder das Einfügen von Bildern. Die GUI enthält eine Abfolge von Aktivitäten, die auch einige Ereignisse auslösen, die wiederum einige Aktionen beim Aufruf einer Komponente oder eines Teils einer Komponente ausführen, wie z.B. das Anklicken einer Schaltfläche, die einige Aktionen auslöst.

Eine GUI-Anwendung ist also ein Framework, das aus grafischen Komponenten & Ereignissen, die auf diesen Komponenten ausgelöst werden können, und den Aktionen, die als Ergebnis der ausgelösten Ereignisse ausgeführt werden, besteht.

Frameworks stellen in der Regel vorkompilierte, wiederverwendbare Klassen und Komponenten zur Verfügung, die wir per Drag&Drop in die Zeichenfläche ziehen und dann die Ereignisse und Aktionen mit diesen Komponenten verknüpfen können.

Java bietet die folgenden Hauptframeworks für die GUI-Programmierung:

  1. Abstract Windowing Toolkit: Dies ist das älteste Framework in Java und wurde erstmals im JDK 1.0 eingeführt. Die meisten AWT-Komponenten sind inzwischen veraltet und wurden durch Java Swing-Komponenten ersetzt.
  2. Swing API: Dies ist eine Reihe von grafischen Bibliotheken, die auf dem AWT-Framework entwickelt wurden, und ist ein Teil der Java Foundation Classes (JFC). Swing hat eine modulare Architektur, in der wir Plug-and-Play für die Komponenten verwenden können.
  3. 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), die auf Android verwendet werden.

Java Foundation Classes (JFC)

Java bietet einen Satz von Features und Funktionen für die Entwicklung von grafischen Benutzeroberflächen oder GUIs. Dieser Satz von Funktionen ist als Java Foundation Classes oder JFC bekannt.

Mit JFC können wir Anwendungen reichhaltige grafische Funktionalität hinzufügen und sie auch interaktiver gestalten. JFC enthält eine Reihe von grafischen Komponenten, die einfach in unsere Anwendung eingesteckt und nach unseren Anforderungen programmiert werden können. Die Programmierung dieser Komponenten erfordert in der Regel nur ein paar Zeilen Code.

JFC enthält Klassen aus den Paketen java.awt und javax.swing. Darüber hinaus 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. Diese werden wir im weiteren Verlauf der Java AWT- und Java Swing-Tutorials besprechen. JFC bietet auch verschiedene Methoden, die wir innerhalb unserer Anwendung verwenden können.

Einige der am häufigsten verwendeten Methoden sind:

Methode Beschreibung
public void add(Component c) Fügt eine Komponente zu der übergeordneten Komponente hinzu, die die Methode aufruft.
public void setSize(int width,int height) Setzt die Größe einer Komponente mit einer bestimmten Breite und Höhe.
public void setLayout(LayoutManager m) Setzt den angegebenen Layout-Manager für diese Komponente.
public void setVisible(boolean b) Setzt die Sichtbarkeit der Komponente gemäß dem booleschen Wert. Standardmäßig ist die Sichtbarkeit false.

Lassen Sie uns nun dazu übergehen, die GUI-Komponenten auf einer allgemeinen Ebene zu diskutieren. In den folgenden Tutorials werden wir dann die AWT- und Swing-Pakete und deren Komponenten speziell besprechen.

Fensterkomponenten

Wir wissen, dass der übergeordnete Container jeder GUI-Anwendung ein Fenster ist, das einen oder mehrere Rahmen enthalten kann.

Eine GUI umfasst im Allgemeinen Elemente der Benutzeroberfläche oder die Elemente, die als Teil der GUI in der Anwendung angezeigt werden.

Diese Fensterkomponenten sind wie folgt:

  • Informationselemente: Die Elemente oder Komponenten, die uns Informationen zur Verfügung stellen, wie Beschriftungen, Icons, Banner oder Meldungsdialoge.
  • Eingabesteuerelemente: 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.

Frame in Java

Ein Frame ist ein grafisches Fenster, das auf dem Bildschirm sichtbar ist. Ein Frame kann als eine Komponente betrachtet werden, aber da er ein physisches Fenster bildet, das wir auf dem Bildschirm sehen können, wird er anders behandelt als die anderen Komponenten. Ein Frame kann auch andere grafische Komponenten wie Schaltflächen, Textfelder usw. und Panels haben.

Frames haben auch Methoden, die von anderen Komponenten nicht unterstützt werden. „java.awt.Frame“ stellt eine Klasse in AWT dar, während „JFrame“ die im Java Swing-Paket enthaltene Klasse ist, die einen Frame darstellt.

So wird jede GUI-Anwendung mit der Konstruktion eines JFrame-Objekts beginnen, das das Hauptfenster bildet. Sobald das JFrame-Objekt erstellt ist, können wir seine sichtbare Eigenschaft auf true setzen, indem wir setVisible (‚true‘) aufrufen. Dann können wir die anderen Komponenten in diesen Frame ziehen.

Alle GUI-Komponenten einschließlich der Frames haben einige gemeinsame Eigenschaften, da sie Teil einer gemeinsamen Vererbungshierarchie sind, die oben gezeigt wurde. Wir können also sagen, dass es einen mächtigen Fall von Code-Sharing im Java Swing-Paket gibt.

Die folgende Abbildung zeigt ein typisches Frame-Fenster im GUI-Editor.

Wie wir in der obigen Abbildung sehen können, ist das äußerste Fenster im Design-Editor (markiert mit einem kleineren roten Pfeil) der Frame. Innerhalb dieses Rahmens haben wir verschiedene andere Komponenten oder Kindkomponenten des Rahmens.

Das ist aus dem Panel auf der linken Seite ersichtlich, das eine Baumstruktur der Komponenten zeigt. Wie durch einen größeren roten Pfeil markiert, ist JFrame die Wurzelkomponente und alle anderen Komponenten sind ihre Kindkomponenten.

JPanel in Java

Der JPanel-Container ist ein Teil des Swing-Pakets in Java. JPanel speichert eine Gruppe von Komponenten. JPanel organisiert die Komponenten anhand des von ihm festgelegten Layouts. Verschiedene Layouts können JPanel helfen, die Komponenten besser zu organisieren.

JPanel wird als Grundbaustein für das Layout von Komponenten in einem Frame oder innerhalb anderer Panels betrachtet. Eine GUI-Anwendung hat normalerweise Frame als Hauptfenster und ein oder mehrere Panels darin, um verschiedene Komponenten aufzunehmen und zu organisieren.

Das folgende Bild zeigt ein einfaches Beispiel für ein Panel innerhalb eines Frames.

Wie oben gezeigt, ist ein Panel-Container in einen Frame-Fenster-Container 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 Panel anwenden, der die Komponenten oder Elemente innerhalb des Panels organisiert. Der Standard-Layout-Manager für JPanel ist „FlowLayout“.

GUI-Layouts in Java

Java-Container verwenden ein automatisches Layout der Komponenten auf dem Bildschirm. Um die Größe und Positionen der Komponenten kümmert sich aber der „Layout-Manager“. Der Layout-Manager wird für einen Container zur Designzeit festgelegt. Er kann auch dynamisch geändert werden.

Gängige Layouts, die in Java GUI verwendet werden, sind:

#1) BorderLayout

Das Border-Layout unterteilt die Komponente in 5 Bereiche, wie unten gezeigt.

Von diesen sind 4 Bereiche, nämlich „Nord“, „Süd“, „Ost“ und „West“ nicht größenveränderbar. Der Bereich „Mitte“ ist größenveränderbar. Beachten Sie, dass jeder Bereich nur eine Komponente aufnehmen kann, während Bereiche 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 umbrochen, wenn die Breite des Containers ausgeschöpft ist. Außerdem werden die Komponenten in der Reihenfolge von links nach rechts angezeigt.

#3) BoxLayout: Beim Box-Layout werden die Komponenten entweder vertikal oder horizontal angeordnet. Diese Anordnung des Box-Layouts ist unabhängig von der Containergröße. Die Komponenten im Container werden so eingestellt, dass sie den Container ausfüllen und identische Größen haben.

Dies waren einige der wichtigen und gängigen Komponenten, die wir in der GUI-Entwicklung haben. In unseren nachfolgenden Tutorials zu AWT und Swing werden wir auf die anderen Komponenten dieser Pakete eingehen.

Häufig gestellte Fragen

Q #1) Was ist GUI-Programmierung?

Antwort: Die Programme, die unter Verwendung von grafischen Komponenten entwickelt werden, die mit dem Computer unter Verwendung des Zeigegeräts 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, in die wir grafische Komponenten direkt einstecken und verwenden können.

Q #2) Welche GUI kann man mit Java verwenden?

Antwort: Java unterstützt einige der besten Frameworks, die wir für die Entwicklung von GUI-Anwendungen verwenden können, wie unten gezeigt:

  • JavaFX.
  • Swing GUI Java.
  • AWT: Abstract Windowing Toolkit.
  • SWT- Standard Widget Toolkit.
  • Apache Pivot.
  • SwingX.
  • JGoodies.
  • QtJambi.

Q #3) Was sind die Vorteile einer GUI?

Antwort: GUI-Programme machen Anwendungen interaktiv, intuitiv und einfacher zu bedienen und zu erlernen. Da sie den Benutzer mit grafischen Darstellungen versorgen, haben die Aktionen mehr Wirkung und so erhalten wir unmittelbares visuelles Feedback über die Anwendung.

Q #4) Was ist JavaFX API?

Antwort: JavaFX ist die neueste Java-Bibliothek, die im nativen Java-Code geschrieben ist und Klassen und Schnittstellen enthält. JavaFX kann verwendet werden, um GUI-Anwendungen in Java-Versionen später als Java 8 zu entwerfen.

Frage #5) Ist Java gut für GUI?

Antwort: Obwohl Java mehr Werkzeuge für die Entwicklung von GUI-Anwendungen und die beste Unterstützung bietet, ist es nicht so schnell und effizient wie die MFC-Bibliothek von C++, die fast alle Funktionen für die Entwicklung fortgeschrittener GUI-Anwendungen bietet.

Abschluss

In diesem Tutorial haben wir uns mit der GUI-Programmierung in Java beschäftigt. Wir haben einige der wichtigen Konzepte der GUI-Programmierung in Java vorgestellt und einen Überblick über die von Java unterstützten GUI-Frameworks gegeben. Wir haben den Überblick über die JFC-Bibliothek besprochen.

=> Sehen Sie sich hier ALLE Java-Tutorials an.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.