Grundlagen von Swing

Werbung
Kap. 35
Swing: Grundlagen
Kap. 36.1
Swing: Hauptfenster
by Ali Bastan
Gliederung
„Grundlagen von Swing“
1.
Kurze Einleitung
2.
Warum Swing, wenn es das AWT gibt?
3.
Was ist Swing?
4.
Merkmale von Swing
5.
Vor- und Nachteile von Swing
6.
Errungenschaften des Swing:
7.
Beispielprogramm
„Hauptfenster“
- Look-And-Feel
8. JFrame
9. JWindow
10. JDialog
11. JoptionPane
12. JApplet
02.Juni 2008
Java: "Einführung in SWING"
2
1.Kurze Einleitung
•
Grafische Benutzeroberflächen (Graphical User Interface: GUI) sind ein
wichtiger Bestandteil von Software-Produkten
•
Ab Version JDK 1.0 wurde die Grafikbibliothek mit dem Namen AWT
(Abstract Windowing Toolkit) zur Verfügung gestellt
•
Ab Version JDK 1.1 wurde eine zusätzliche Grafikbibliothek Swing als
Add-On zur Verfügung gestellt
•
Ab Version JDK 1.2 ist die Swing-Bibliothek fester Bestand des JDK
•
Swing basiert auf dem AWT, ist aber Leistungsfähiger und fortschrittlicher
02.Juni 2008
Java: "Einführung in SWING"
3
2.Warum Swing, wenn es AWT gibt?
•
Mit der Einführung des AWT wurde die Entwicklung von grafikorientierten
Anwendungen vereinfacht
•
Es können sehr einfach „portable“ Programme mit grafischer Oberfläche
entwickelt werden
•
Durch die geringe Entwicklungszeit, die den Programmierern zur
Entwicklung des AWT zur Verfügung stand, konnte das AWT nicht alle
programmiertechnische Bedürfnisse abdecken
•
Das AWT brachte nur eine Grundschnittmenge der gängigen GUIs mit sich
•
Java war nicht mehr betriebssystemunabhängig
•
Im AWT werden nur Heavyweight-Components verwendet
02.Juni 2008
Java: "Einführung in SWING"
4
2.Warum Swing, wenn es AWT gibt?
Nachteile des AWT:
•
AWT ist sehr von den betriebsystemspezifischen Komponenten abhängig,
da viel auf GUI-Ressourcen der Plattform zugegriffen wird
•
Sehr schwierig mit AWT ein plattformunabhängiges Look-and-Feel zu
realisieren
•
Hoher Aufwand für die JDK-Entwicklern um Portierungsprobleme des AWT
an unterschiedliche Plattformen anzugleichen
•
Das AWT besitzt nur eine Grundmenge von Dialogelementen, dadurch
können sehr aufwendige grafische Benutzeroberflächen sehr schlecht bzw.
nur mit sehr viel Aufwand realisiert werden
02.Juni 2008
Java: "Einführung in SWING"
5
3.Was ist Swing?
•
Swing ist die effektive Antwort auf die Kritik an das AWT
•
Swing ist eine Weiterentwicklung von AWT
– Als Add-On ab JDK 1.1
– Ab JDK 1.2 fester Bestandteil
•
Swing ist ein Teil der Java-Klassenbibliothek JFC (Java Foundation
Classes)
•
Swing greift sehr eingeschränkt auf plattformspezifische GUI-Ressourcen
zu → d.h. Swing erzeugt viele GUI-Elemente selber
02.Juni 2008
Java: "Einführung in SWING"
6
4.Merkmale von Swing
•
Zu jeder AWT-Komponente gibt es entsprechende Swing-Komponenten,
diese beginnen mit „J“ z.B. JButton , JLabel, JFrame…
•
Zusätzlich gibt es neues Set an vielen neuen Komponenten
•
Swing-Komponenten sind alle Subklassen der Klasse JComponent, ausser
die Hauptfenster
•
Alle Elemente von Swing sind Bestandteil des Paketes javax.swing
•
Swing besitzt sowohl Heavyweight-Components als auch LightweightComponents
02.Juni 2008
Java: "Einführung in SWING"
7
5.Vorteile von Swing (1)
Vorteile:
•
Plattformunabhängig („pure Java“)
•
Pluggable Look-And-Feel
–
Ermöglicht das Aussehen und die Bedienung der Komponenten zur Laufzeit ändern, ohne
das Programm neu zu starten
•
Bessere Kompatibilität auf verschiedenen Plattformen, durch LightweightComponents
•
Swing hat eine umfangreichere Menge an Dialogelementen als das AWT
⇒ komfortableres Programmieren von GUI-Anwendungen
02.Juni 2008
Java: "Einführung in SWING"
8
5.Nachteile von Swing (2)
Nachteile:
•
Swing-Anwendungen sind ressourcenhungrig, da jede Komponente von
Swing erzeugt werden muss:
• Viel CPU-Leistung erforderlich
• Jede Menge Hauptspeicher erforderlich
•
Viele kleinere und größere Probleme in der Swing-Bibliothek enthalten
• z.B. belegte Ressourcen werden nicht wieder komplett freigegeben
(Fensterelemente, behoben seit JDK 1.3)
•
Fehlende Swing-Unterstützung bei Browsern für Applet-Anwendungen
(Java-Plugin erforderlich)
Die meisten nachteiligen Merkmale wurden ab der JDK 1.3 behoben
02.Juni 2008
Java: "Einführung in SWING"
9
6.Errungenschaften des Swing (1)
Heavyweight-Components:
Fenster 2
Fenster 1+2
Entwicklungsseite
Fenster 1
Frame
Button
ButtonPeer
„Peer-Objekte“
(Vermittler)
Betriebssystemseite
FramePeer
Betriebssystem
1
02.Juni 2008
Java: "Einführung in SWING"
10
6.Errungenschaften des Swing (1)
Lightweight-Components:
Fenster 2
Fenster 1+2
Entwicklungsseite
Fenster 1
JAVA
Frame
Button
Look&Feel
Betriebssystem
Grundgerüst für Frame
02.Juni 2008
Java: "Einführung in SWING"
11
6.Errungenschaften des Swing (2)
Look-And-Feel:
http://www.javootoo.com/index.html
•
Pluggable Look-And-Feel erlaubt dem Anwender die Umschaltung von
„Aussehen & Bedienung“ einer Anwendung zur Laufzeit
•
Keine Festlegung auf ein bestimmtes Look-And-Feel zum Design- oder
Entwicklungszeitpunkt
•
Das Umschalten zwischen zwei Look-And-Feels erledigt der UI-Manager
(User-Interface Manager)
metal
02.Juni 2008
motif
Java: "Einführung in SWING"
windows
12
6.Errungenschaften des Swing (3)
Model-View-Controller-Prinzip:
Model
- Liefert die Daten
- Informiert die VIEW über Änderungen
Holt Daten
Ändert die Selektion
Informiert über
Änderungen
View
Controller
- Zeigt die Daten in grafischer Form an
- Sendet Benutzereingaben an den CONTROLLER
Informiert über
Benutzereingaben
- Definiert das Verhalten der Applikation
- Setzt Benutzereingaben in
Modeländerungen um
UI-Delegate
02.Juni 2008
Java: "Einführung in SWING"
13
6.Beispielprogramm
Beispiele folgt später!
02.Juni 2008
Java: "Einführung in SWING"
14
7.JFrame
JFrame
contentPane
JPanel
JButton
02.Juni 2008
Java: "Einführung in SWING"
JLabel
15
8.JWindow
02.Juni 2008
Java: "Einführung in SWING"
16
9.JDialog
02.Juni 2008
Java: "Einführung in SWING"
17
10.JOptionPane
02.Juni 2008
Java: "Einführung in SWING"
18
11.JApplet
02.Juni 2008
Java: "Einführung in SWING"
19
Vielen Dank für Ihre Aufmerksamkeit!
02.Juni 2008
Java: "Einführung in SWING"
20
Herunterladen