16
Folie 1 TechTalk > 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 Softwaretechnik 21. April 2009

Java GUI Toolkits - Swing vs. SWT vs. Jambi

Embed Size (px)

DESCRIPTION

TechTalk von Heinrich Wendel (DLR Köln-Porz, 21.04.2009)

Citation preview

Page 1: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 2: Java GUI Toolkits - Swing vs. SWT vs. Jambi

Folie 2TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009

Java ist langsam!

Page 3: Java GUI Toolkits - Swing vs. SWT vs. Jambi

Folie 3TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009

Java ist langsam?

http://kano.net/javabench/data

Page 4: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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)?

Page 5: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 6: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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 …

Page 7: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 8: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 9: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Print

Page 10: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 11: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 12: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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)");

Page 13: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 14: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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)

Page 15: Java GUI Toolkits - Swing vs. SWT vs. Jambi

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

Page 16: Java GUI Toolkits - Swing vs. SWT vs. Jambi

Folie 16TechTalk > Heinrich Wendel > Java GUI Toolkits - Swing vs. SWT vs. Jambi > 21.04.2009

Fragen?