0% fanden dieses Dokument nützlich (0 Abstimmungen)
92 Ansichten30 Seiten

Java 3tag

Das Dokument beschreibt verschiedene Möglichkeiten der GUI-Programmierung in Java. Es werden die Frameworks AWT, Swing, SWT und JFace erläutert. Des Weiteren wird demonstriert, wie einfache GUI-Elemente wie Fenster, Menüs und Tabellen erzeugt werden können.

Hochgeladen von

PiotrekBzdręga
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PPT, PDF, TXT herunterladen oder online auf Scribd lesen
0% fanden dieses Dokument nützlich (0 Abstimmungen)
92 Ansichten30 Seiten

Java 3tag

Das Dokument beschreibt verschiedene Möglichkeiten der GUI-Programmierung in Java. Es werden die Frameworks AWT, Swing, SWT und JFace erläutert. Des Weiteren wird demonstriert, wie einfache GUI-Elemente wie Fenster, Menüs und Tabellen erzeugt werden können.

Hochgeladen von

PiotrekBzdręga
Copyright
© © All Rights Reserved
Wir nehmen die Rechte an Inhalten ernst. Wenn Sie vermuten, dass dies Ihr Inhalt ist, beanspruchen Sie ihn hier.
Verfügbare Formate
Als PPT, PDF, TXT herunterladen oder online auf Scribd lesen

Java Schulung - GUI

24. – 28. September 2007 (Mittwoch)


GUI-Programmierung mit Java
 AWT (Advanced Windowing Toolkit)
 Erstes Grafikframework für Java
 Bestandteil der Java API
 Elemente: Frame, Panel, Canvas, Label...
 Schwergewichtige Umsetzung mit original Betriebsystemkomponenten
(kleinster gemeinsamer Nenner)
 Swing
 Erweitert AWT, seit Java 2SE in JFC (1998)
 Neue Features: Drag&Drop, Look&Feel, ToolTips, DoubleBuffering,
 Leichtgewichtige Umsetzung: Alle Elemente werden von Java gerendert
 Sehr Plattformunabhängig, aber “ungewohnter “ Look&Feel
 SWT (Standard Widget Toolkit)
 Wieder Schwergewichtig..(nativ+nachgebaut)
 Vorteile: Origärer, Schneller
 Nachteile: Plattformabängigkeit, Unterschiede zwischen Plattformenim
Detail, Speicherverwaltung, Kein MVC (schwerer zu handhaben)
GUI-Programmierung mit Java
 JFace
 Erweitert SWT, objektorientierter als SWT
 Ergänzt SWT um ModelViewControler Ansatz
 Vereinfacht die Nutzung von SWT
 Zusätzliche Bibliotheken aus Eclipe benötigt (1,4 auf 2,8 MB)
 RCP (Rich Client Platform)
 Basis-Eclipse als Framework für eigene Anwendungen
 Modulare Anwendungsarchitektur (Plugins)
 Mehr Bibliotheken, steile Lernkurve
 Noch größer.. OSGi-Runtime+SWT+Jface+UI (4,8 MB)
 ADI (ACX)
 Setzt auf JFace+SWT auf..
Was wird benötigt ?

 Notwendige Dateien
 [Link] - enthält die Abstraktionsschicht
 [Link] – Plattformspezifischer Code
 Hinzufügen:
 Eintragen des SWT in den Classpath des Projektes
 Attach Source: „[Link]“
Ein Minimales GUI-Programm
Was war neu ?
 Klasse „Display“ (GUI-Prozess)
 Ein Display je Thread
 Verbindungsglied zum Betriebssystem
 Abfrage von System-Eigenschaften (getSystemFont,
getDoubleKlickTime())
 Erzeugt Events, Events können auch gepostet werden
 Klasse „Shell“ (Fenster)
 Eine Shell je Fenster auf dem Desktop
 Typen: TopLevel-Shell (bekommt ein Display),
Dialog-Shell (bekommt die Parent-Shell)
 Message-Loop!
Wir fügen Widgets hinzu! ([Link])
SWT – Fensterkomposition aus Widgets

Display

Shell

Composite Widget Widget

Widget Widget Widget

Komplexes Fenster Setzt sich hierarchisch aus Widgets zusammen!


SWT-Widgets

Browser Buttons (Verschiedene Styles)

Canvas Combo Composite

Coolbar CTabFolder DateTime


SWT-Widgets II

Link

Group Label
Shell

ExpandBar

ProgressBar

Slider Sash
List Menu

Scale Spinner
Styled Text
ScrolledComposite
SWT Widgets III

Text

TabFolder Table

ToolBar
Tray

Tree
Widget - Vererbungsirarchie
Unser nächstes Ziel (Hinzufügen einer Tabelle)
Tabelle Teil II
Unser nächstes Ziel: Eine Menubar
Erzeugung des Menüs Einfügen in createGUI()
Nächster Wunsch - Buttons

Anordnung in einem Grid, Resizeverhalten!!


Ein GridLayout
Layout ändern:

Tabelle über zwei Spalten ausdehnen:


Hinzufügen der Buttons und Aktionen
Neue Telefonummern hinzufügen

Eigenes Composite
QuellCode für eigenes Composite
Composite integrieren

Hinzufügen in CreateGUI

Anpassen der Aktion des New-Buttons


Widgets und Composites
 Erzeugen von Widgets
 Parent wird übergeben, Stil-konstante (siehe Button)
 Keine add-Methode (Parent beim Erzeugen übergeben)
 Composites
 Shell ist ein wichtiges Composite-Beispiel
 Anordnung von inneren Widgets über Layouts (FillLayout,
RowLayout, GridLayout,..) oder absolute Platzierung mit
setBounds()
 Man kann eigene Composite-Widgets erzeugen
(Wiederverwertbarkeit, Strukturierung)
Eine Sicherheitsabfrage
Noch mehr festdefinierte Dialoge
 Plattformdialoge für
 Message Box
 Farbauswahl (ColorDialog)
 Datei / Orderwahl
 Drucken
 Fontauswahl
Bemerkungen

 Speicherverwaltung
 Speicherverwaltung durch Benutzer (rekursives dispose..,
Benutzung nach dispose fehlerhaft)
 Dünne Kapselung in SWT:
 Daten (hier Telefonnummern) werden nur im Plattform-
spezifischem Widget gespeichert
 In unserem Beispiel stark verwoben.
 „Was ist wenn die selben Daten in mehren Fenstern angezeigt
werden sollen“

 Alternatives Designs:
 Schichtenarchitekturen (GUI/Modell/Daten)
 Model View Controler-Ansatz
Model View Architektur

 Grundlegende Idee der Schichtenarchitektur


 Trennung von Modell (Anwendungslogik/ Fachkonzept)
und Darstellung
 Modell kennt Oberfläche nicht, stellt Ihr aber Daten bereit
 Zwei Realisierungsansätze
 Polling:
 Benutzeroberfläce fragt regelmäßig nach Änderungen
 Nachteile: Langsame Reaktionen
 Indirekte Kommunikation:
 GUI „abboniert“ Änderungsnachrichten.
 Registriert sich als „Observer“ und holt sich Daten bei
Änderungsnachricht.
Model View Controler
Schreiben Sie eine GUI für die Raumbelegung

 Eingabe der Daten, Darstellung der


Mitarbeiter in einer Liste (Buttons „New“
und „Delete“
 Start der Zuordnung, Ausgabe der
Ergebnisse
 Laden und Speichern der Eingabe-
Daten+Zuordnung.
Danke für Ihr Interesse …

Das könnte Ihnen auch gefallen