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 - Look-And-Feel Hauptfenster 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
Nachteile des AWT: 2.Warum Swing, wenn es AWT gibt? 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 Lightweight- Components 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 Lightweight- Components 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
Heavyweight-Components: 6.Errungenschaften des Swing (1) Fenster 1 Fenster 2 Fenster 1+2 Betriebssystemseite Entwicklungsseite Frame FramePeer Button ButtonPeer Peer-Objekte (Vermittler) Betriebssystem 1 02.Juni 2008 Java: "Einführung in SWING" 10
6.Errungenschaften des Swing (1) Lightweight-Components: Fenster 1 Fenster 2 Fenster 1+2 Betriebssystem JAVA Entwicklungsseite Frame Look&Feel Grundgerüst für Frame Button 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 motif windows 02.Juni 2008 Java: "Einführung in SWING" 12
6.Errungenschaften des Swing (3) Model-View-Controller-Prinzip: Model - Liefert die Daten - Informiert die VIEW über Änderungen Holt Daten Informiert über Änderungen Ändert die Selektion View - Zeigt die Daten in grafischer Form an - Sendet Benutzereingaben an den CONTROLLER Informiert über Benutzereingaben Controller - 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 JLabel 02.Juni 2008 Java: "Einführung in SWING" 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