Programmering

Java desktop-udvikling med Qt Jambi

Qt Jambi er et nyt og bemærkelsesværdigt alternativ til Swing og Java 2D til udvikling af rige, platforme-applikationsgrænseflader på tværs af platforme. I denne artikel JavaWorld bidragyder Jeff Hanson introducerer den nyligt udgivne Qt Jambi, forklarer, hvordan den fungerer under emhætten, og præsenterer programmeringseksempler, der gør dig fortrolig med rammens træk-og-slip-API og integrerede udviklingsværktøjer.

Qt Jambi, udgivet i begyndelsen af ​​juni 2007, er en udviklingsramme, der integrerer Java-programmeringssproget med Trolltechs populære C ++ GUI-udviklingsramme, Qt. Udgivet under en dobbelt open source / kommerciel licens, giver Qt Jambi Java-udviklere, der bruger Java Standard Edition 5.0 (JSE 5.0) og senere, mulighed for at udnytte funktionerne i Qt-rammen. Sammen med branchetestet support på tværs af platforme yder Qt Jambi support til GUI-udviklingsbasics såsom 2D- og 3D-grafik, træk-og-slip-interobject-hændelsesmeddelelser, internationalisering, SQL-databaseadgang, XML- og TCP / IP-netværksprotokoller. Et Qt Jambi Eclipse-plug-in giver dig også mulighed for at få adgang til funktionerne i Qt Jambi ved hjælp af Eclipse.

Download Qt Jambi
Qt Jambi tilbydes under en dobbelt open source / kommerciel licens. Du kan downloade begge versioner fra Trolltech-hjemmesiden. Open source-versionen leveres under GNU General Public License og leveres uden support eller garanti. Kommercielle projekter kræves for at bruge den kommercielle version af Qt Jambi.

Qt Jambi bygger på Qt's C ++ GUI-platform på tværs af platforme for at lette opgaven med at udvikle native look-and-feel-brugergrænseflader til de fleste desktop-platforme, der bruger Java-kode. Som sådan er det et interessant alternativ til Swing og Java 2D til Java-desktopudvikling. I denne praktiske introduktion til Qt Jambi lærer du om Qt Jambis udviklings-API og integrerede udviklingsværktøjer. Du vil blive introduceret til Qt Jambis widget-baserede GUI-ramme og lære at oprette et projekt ved hjælp af Qt Designer. Du vil også sammenligne Qt Jambis signal-og-slots begivenhedshåndteringsmekanisme med Java event listener-rammen, få et første kig på Qt Jambis grafikgengivelsessystem og se selv, hvordan det integreres med Eclipse via Qt Jambi Eclipse-plug-in.

Download Qt Jambi nu, hvis du gerne vil følge eksemplerne.

Oversigt over Qt Jambi

Qt Jambi er en Java-baseret ramme, der integrerer Trolltechs cross-platform C ++ -ramme til GUI-udvikling med Java-programmeringssproget. Følgende funktioner er tilgængelige, når du udvikler Java-desktopapplikationer med Qt Jambi:

  • Fremragende support på tværs af platforme til 2D- og 3D-grafik
  • En unik kommunikationsmekanisme for interobjektbegivenheder
  • Internationalisering
  • SQL-databaseadgang
  • Understøttelse af XML
  • Understøttelse af TCP / IP-netværksprotokoller

Du kan bruge Qt Jambi med de fleste JVM'er (Java virtuelle maskiner) efter Java Standard Edition (JSE) 5.0 og Java Enterprise Edition (JEE) 5.0. Qt Jambis stramme OS-integration giver dig mulighed for at producere Java-desktopapplikationer, der efterligner det oprindelige OS-udseende.

Qt opfylder Java-programmeringssproget

Qt Jambi API giver et tyndt lag af Java-kode, der interagerer med Trolltechs indbyggede C ++ - biblioteker. Dette lag af Java-kode kører i ethvert Java Runtime-miljø (JRE) og bruger JNI-rammen (Java Native Interface) til at kommunikere med de indfødte C ++ - biblioteker.

I det væsentlige placerer Qt Jambi et Java-abstraktionslag over Qts C ++ - biblioteker. For at imødegå ligheden og overlapningen mellem Qt's C ++ - klasser og Java's kerneklasser, kortlægger Qt Jambi de overlappende C ++ - klasser til tilsvarende Java-klasser. Som et resultat kan du bruge standard Java-konstruktioner og operatorer med Qts oprindelige abstraktioner. Du kan også blande Qt Jambi API'er med ikke-Qt Java API'er.

Tabel 1 viser de Qt-klasser, der er kortlagt til tilsvarende Java-kerneklasser.

Tabel 1. Qt-klasser kortlagt til tilsvarende Java-klasser

Qt klasseJava klasse (r)
QCharchar og java.lang.Character
QHashjava.util.HashMap
QListjava.util.Liste
QMapjava.util.SortedMap
QStringjava.lang.Streng
QThreadjava.lang.Tråd
QVectorjava.util.Liste

Qt C ++ API afhænger af en abstrakt værditype QVariant at indkapsle mange Qt-værdityper. Fordi Java-sproget allerede giver en almindelig abstrakt type for alle klasser (den fælles Objekt baseklasse), bygger Qt Jambi API på Objekt klasse, hvor Qt C ++ er afhængig af QVariant. Qt Jambi kortlægger C ++ enums til Java enums for at håndhæve typesikkerhed for Qt-Java enums og bitflag.

Qt Jambi inkluderer en widgetbaseret GUI-ramme, der udnytter platformsspecifikke udvidelser som ActiveX, OpenGL og ClearType. Denne ramme giver indfødte udseendemuligheder til Windows-, Mac OS X- og Linux-temaer.

Widgets i Qt Jambi følger en syntaks i stilark svarende til HTML Cascading Style Sheets (CSS), så du kan udføre mindre eller udbredte tilpasninger ved at tilpasse CSS-stil tags og egenskaber. Du kan også underklasse Qts widgets for endnu mere look-and-feel tilpasning og kontrol.

Qt Jambis GUI-ramme inkluderer layoutadministrationsklasser, der præsenteres i Qt Designer-værktøjet for at forenkle layoutet, når du bygger desktop-komponenter og applikationer. Figur 1 viser layoutvinduet i Qt Designer-værktøjet.

Qt Jambis GUI-ramme giver API'er til opbygning af applikationer med dockbare komponenter. Blandt andet kan du bruge denne funktion til at oprette desktop-applikationer med native look-and-feel docking-værktøjslinjer.