Upload
andreas-schreiber
View
9.797
Download
5
Embed Size (px)
DESCRIPTION
TechTalk von Heinrich Wendel (DLR Köln-Porz, 21.04.2009)
Citation preview
Folie 1TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Java GUI Toolkits – Swing vs. SWT vs. Jambi
Heinrich Wendel, DLR Simulations- und Softwaretechnik21. April 2009
Folie 2TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Java ist langsam!
Folie 3TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Java ist langsam?
http://kano.net/javabench/data
Folie 4TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Geschichte
1996: Java 1.0 – Abstract Window Toolkit (AWT) (Sun)
1996: Qt 1.0 (Trolltech)
1998: Java 1.2 – Swing (Sun)
2000: Java 1.3 (Sun)
2001: Eclipse 1.0 and Standard Widget Toolkit (SWT) 1.0 (IBM)
2004: Java 5.0 (Sun)
2005: Eclipse 3.0 and SWT 3.0 (IBM)
2006: Java 6.0 (Sun)
2007: Qt Jambi 4.3 (Trolltech)
2009: Qt Jambi 4.5, last official release (Nokia)
2010: Java 7.0 (Oracle)?
Folie 5TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Funktionen moderner GUI Toolkits
EventsDrag & DropPlattform UnabhängigkeitInternationalisierungLayoutsAccessibility2D Drawing APIThreadingIDE Integration (GUI Builder)Styling with CSS3D APIDatabindingsApplication FrameworkWidgets, Widgets, Widgets
Folie 6TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
A hell lot of widgets
Browser, Button, Combobox, ToolBar, DateTime, ProgressBar, Slider, Spinner, Table, Tree, TreeTable, Text, Tabs, Menu, Label, PreferencesPage …
Folie 7TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Applications
SWT/JFaceEclipse and everything around itRSSOwlTuxGuitar…
SwingNetbeansIntelliJJEditJXMLPadJFreeChartPPP…
Qt Jambi?http://dist.trolltech.com/developer/download/webstart/index.html
Folie 8TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
AWT / Swing
AWT
Native implementation of few basic widgets
Swing
Emulation of more widgets
Features
java.applet
java.awt
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.image
java.awt.print
AWT
Java
Swing
javax.swingjavax.swing.borderjavax.swing.filechooserjavax.swing.tablejavax.swing.textjavax.swing.treejavax.swing.undo
Folie 9TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
SWT – Overview
Concept
Uses native widgets => platform dependent parts
Emulation if native not available
Can be used without Eclipse!
Features
Drag‘n‘Drop
Events
Layout
Graphics
Folie 10TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
JFace
ConceptBased on SWTMVC everywhereA lot of additional widgets
FeaturesActionsWizardsResourcesTextViewersOperationPreferencesWindowData bindings
Folie 11TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Qt Jambi
Ressource ManagementSignal & SlotsLayout ManagementStyle SheetsQt Designer / Linguist
WebkitMultimedia (Phonon)XMLJDBCQt Concurrent
AWT/SWT BridgesQt Jambi Generator
http://www.qtsoftware.com/files/pdf/qt-jambi-4.4-whitepaper
Folie 12TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Qt Jambi – Events
slider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { spinner.setValue(slider.getValue()); }});spinner.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { slider.setValue((Integer)spinner.getValue()); }});
slider.valueChanged.connect(spinBox, "setValue(int)"); spinBox.valueChanged.connect(slider, "setValue(int)");
Folie 13TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Licenses
AWT/Swing <= Java 6.0: Sun Java License
AWT/Swing >= Java 6.0: GPL
JFace/SWT: Eclipse Public License (EPL)
Qt Jambi <= 4.4: GPL
Qt Jambi >= 4.4: LGPL
Folie 14TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Ausblick
JavaFX„The better applets“Browser/Mobile/Desktop
eSWT / eRCPEmbedded SWTEmbedded Rich Client Platform
RWT / RAPRich Ajax PlatformSWT/Eclipse in a Browser
Google Web Toolkit (GWT)
Folie 15TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Fazit
Swing
Integriert in Java, gute Basis für Applikationen
„Fühlt“ sich nicht „echt“ an
Viele zusätzliche Bibliotheken und Widgets (swing-lab, JGoodies)
SWT/JFace
Native widgets und performance
Extrem viele standard Widgets, profitiert von Eclipse
Qt
Cool Stuff
Folie 16TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009
Fragen?