Java-Desktop-Entwicklung mit Qt Jambi

Qt Jambi ist eine neue und bemerkenswerte Alternative zu Swing und Java 2D für die Entwicklung umfangreicher plattformübergreifender Desktop-Anwendungsschnittstellen. In diesem Artikel stellt Jeff Hanson, Mitwirkender von JavaWorld , das kürzlich veröffentlichte Qt Jambi vor, erklärt, wie es unter der Haube funktioniert, und präsentiert Programmierbeispiele, die Sie mit der Drag-and-Drop-API und den integrierten Entwicklungstools des Frameworks vertraut machen.

Qt Jambi, das Anfang Juni 2007 veröffentlicht wurde, ist ein Entwicklungsframework, das die Java-Programmiersprache in das beliebte C ++ - GUI-Entwicklungsframework von Trolltech, Qt, integriert. Qt Jambi wurde unter einer doppelten Open-Source- / kommerziellen Lizenz veröffentlicht und ermöglicht Java-Entwicklern, die Java Standard Edition 5.0 (JSE 5.0) und höher verwenden, die Funktionen des Qt-Frameworks zu nutzen. Neben branchenerprobter plattformübergreifender Unterstützung bietet Qt Jambi Unterstützung für GUI-Entwicklungsgrundlagen wie 2D- und 3D-Grafiken, Drag-and-Drop-Nachrichtenübertragungen zwischen Objekten, Internationalisierung, SQL-Datenbankzugriff, XML- und TCP / IP-Netzwerkprotokolle. Ein Qt Jambi Eclipse-Plug-In bietet Ihnen auch die Möglichkeit, mit Eclipse auf die Funktionen von Qt Jambi zuzugreifen.

Laden Sie Qt Jambi herunter
Qt Jambi wird unter einer doppelten Open Source / kommerziellen Lizenz angeboten. Sie können beide Versionen von der Trolltech-Homepage herunterladen. Die Open-Source-Version wird unter der GNU General Public License bereitgestellt und kommt ohne Support oder Garantie. Kommerzielle Projekte sind erforderlich, um die kommerzielle Version von Qt Jambi zu verwenden.

Qt Jambi baut auf der plattformübergreifenden C ++ - GUI-Grundlage von Qt auf, um die Entwicklung nativer Look-and-Feel-Benutzeroberflächen für die meisten Desktop-Plattformen unter Verwendung von Java-Code zu vereinfachen. Als solche ist es eine interessante Alternative zu Swing und Java 2D für die Java-Desktop-Entwicklung. In dieser praktischen Einführung in Qt Jambi lernen Sie die Entwicklungs-API und die integrierten Entwicklungstools von Qt Jambi kennen. Sie werden in das Widget-basierte GUI-Framework von Qt Jambi eingeführt und lernen, wie Sie mit dem Qt Designer ein Projekt erstellen. Sie werden auch den Ereignisbehandlungsmechanismus für Signale und Slots von Qt Jambi mit dem Java-Ereignis-Listener-Framework vergleichen, einen ersten Blick auf das Grafik-Rendering-System von Qt Jambi werfen und selbst sehen, wie es über das Qt Jambi Eclipse-Plug-In in Eclipse integriert wird.

Laden Sie Qt Jambi jetzt herunter, wenn Sie den Beispielen folgen möchten.

Übersicht über Qt Jambi

Qt Jambi ist ein Java-basiertes Framework, das das plattformübergreifende C ++ - Framework von Trolltech für die GUI-Entwicklung in die Programmiersprache Java integriert. Die folgenden Funktionen stehen bei der Entwicklung von Java-Desktopanwendungen mit Qt Jambi zur Verfügung:

  • Hervorragende plattformübergreifende Unterstützung für 2D- und 3D-Grafiken
  • Ein einzigartiger Kommunikationsmechanismus für Interobjektereignisse
  • Internationalisierung
  • SQL-Datenbankzugriff
  • Unterstützung für XML
  • Unterstützung für TCP / IP-Netzwerkprotokolle

Sie können Qt Jambi mit den meisten JVMs (Java Virtual Machines) nach Java Standard Edition (JSE) 5.0 und Java Enterprise Edition (JEE) 5.0 verwenden. Dank der engen Betriebssystemintegration von Qt Jambi können Sie Java-Desktopanwendungen erstellen, die das Erscheinungsbild des nativen Betriebssystems nachahmen.

Qt erfüllt die Programmiersprache Java

Die Qt Jambi-API bietet eine dünne Schicht Java-Code, der mit den nativ kompilierten C ++ - Bibliotheken von Trolltech interagiert. Diese Java-Codeschicht wird in jeder Java Runtime Environment (JRE) ausgeführt und verwendet das JNI-Framework (Java Native Interface) für die Kommunikation mit den nativen C ++ - Bibliotheken.

Im Wesentlichen platziert Qt Jambi eine Java-Abstraktionsschicht über den C ++ - Bibliotheken von Qt. Um die Ähnlichkeit und Überlappung zwischen den C ++ - Klassen von Qt und den Kernklassen von Java zu beheben, ordnet Qt Jambi die überlappenden C ++ - Klassen entsprechenden Java-Klassen zu. Infolgedessen können Sie Standard-Java-Konstrukte und -Operatoren mit den nativen Abstraktionen von Qt verwenden. Sie können Qt-Jambi-APIs auch mit Nicht-Qt-Java-APIs mischen.

Tabelle 1 zeigt die Qt-Klassen, die äquivalenten Java-Kernklassen zugeordnet sind.

Tabelle 1. Qt-Klassen, die äquivalenten Java-Klassen zugeordnet sind

Qt Klasse Java-Klasse (n)
QChar char und java.lang.Character
QHash java.util.HashMap
QListe java.util.List
QMap java.util.SortedMap
QString java.lang.String
QThread java.lang.Thread
QVector java.util.List

Die Qt C ++ - API hängt von einem abstrakten Werttyp ab QVariant, um viele Qt-Werttypen zu kapseln. Da die Java-Sprache bereits einen gemeinsamen abstrakten Typ für alle Klassen (die gemeinsame ObjectBasisklasse) bereitstellt, stützt sich die Qt Jambi-API auf die ObjectKlasse, wo immer Qt C ++ verwendet wird QVariant. Qt Jambi ordnet C ++ - Aufzählungen Java-Aufzählungen zu, um die Typensicherheit für Qt-Java-Aufzählungen und Bit-Flags zu erzwingen.

Qt Jambi enthält ein Widget-basiertes GUI-Framework, das plattformspezifische Erweiterungen wie ActiveX, OpenGL und ClearType nutzt. Dieses Framework bietet native Look-and-Feel-Funktionen für Windows-, Mac OS X- und Linux-Themen.

Widgets in Qt Jambi folgen einer Stylesheet-Syntax ähnlich der von HTML Cascading Style Sheets (CSS), sodass Sie kleinere oder weit verbreitete Anpassungen vornehmen können, indem Sie Tags und Eigenschaften im CSS-Stil anpassen. Sie können auch die Widgets von Qt in Unterklassen unterteilen, um das Erscheinungsbild noch besser anzupassen und zu steuern.

Das GUI-Framework von Qt Jambi enthält Layout-Verwaltungsklassen, die im Qt Designer-Tool vorgestellt werden, um das Layout beim Erstellen von Desktop-Komponenten und -Anwendungen zu vereinfachen. Abbildung 1 zeigt das Fenster Layouts im Qt Designer-Tool.

Das GUI-Framework von Qt Jambi bietet APIs zum Erstellen von Anwendungen mit andockbaren Komponenten. Mit dieser Funktion können Sie unter anderem Desktop-Anwendungen mit nativen Look-and-Feel-Docking-Symbolleisten erstellen.