Java Swing Vortrag von Raphaela Wrede und Anja

  • Slides: 28
Download presentation
Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch Gliederung: 1. Einleitung 2.

Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch Gliederung: 1. Einleitung 2. Vergleich von AWT und Swing 3. Container 4. Applikationsgerüst / Event Listener 5. Widgets 6. Beispielprogramm

1. Einleitung - bei den ersten Java-Versionen Beschwerden über das AWT - Swing ist

1. Einleitung - bei den ersten Java-Versionen Beschwerden über das AWT - Swing ist effektive Antwort auf diese Kritik Weiterentwicklung des AWT • Swing ist Teil der JFC (Java Foundation Classes) · neue Bibliothek mit ausgefeiltem System zur Erstellung grafischer Benutzerschnittstellen/ oberflächen · die Designstategie Model-View-Controller (MVC) wurde benutzt

2. Vergleich von AWT und Swing Vorteile von Swing: • wichtigstes Feature: Pluggable Look-And-Feel

2. Vergleich von AWT und Swing Vorteile von Swing: • wichtigstes Feature: Pluggable Look-And-Feel • Swing-Komponenten sind komplett in Java implementiert bessere Kompatibilität zwischen den Programmen über unterschiedliche Plattformen hinweg • Swing hat doppelt so viele Komponenten wie das AWT komfortableres Programmieren, viele sog. „widgets“ wie z. B. Standarddialoge

2. Vergleich von AWT und Swing Wichtige Merkmale: • zu jeder AWT-Komponente des AWT

2. Vergleich von AWT und Swing Wichtige Merkmale: • zu jeder AWT-Komponente des AWT gibt es entsprechende Swing-Komponenten, diese beginnen mit J- z. B. JButton statt Button • zusätzlich ein neues Set an Komponenten • Swing-Komponenten sind alle Subklassen der Klasse Jcomponent • alle Elemente von Swing sind Bestandteil des Paketes javax. swing • Vererbungsunterschiede zwischen AWT und Swing (siehe Diagramm)

2. Vergleich von AWT und Swing Gliederung der Swing-Elemente in: 1. Kontrollelemente/Komponenten 2. Container

2. Vergleich von AWT und Swing Gliederung der Swing-Elemente in: 1. Kontrollelemente/Komponenten 2. Container 3. Layout. Manager 4. Events

2. Vergleich von AWT und Swing AWT

2. Vergleich von AWT und Swing AWT

2. Vergleich von AWT und Swing

2. Vergleich von AWT und Swing

3. Container - Container Klassen dienen dazu, Komponenten zu gruppieren, anzuordnen und als eine

3. Container - Container Klassen dienen dazu, Komponenten zu gruppieren, anzuordnen und als eine einzelne Einheit zu behandeln - zur Anordnung der Elemente am Bildschirm hat jeder Container einen Layout Manager zugeordnet - Swing unterscheidet 2 Klassen von Containern: • Top-level Container • Intermediate-level Container

3. Container Top-Level Container • JFrame: Klasse für ein Fenster mit Rahmen, Titel und

3. Container Top-Level Container • JFrame: Klasse für ein Fenster mit Rahmen, Titel und Icons zum Schließen des Fensters • JDialog: Klasse für ein sehr allgemeines Dialogfenster • JApplet: Klasse für Applets - jedes Programm, welches Swing für das GUI verwendet, hat mindestens einen top-level Container -> Wurzel der Containment-Hierarchie

3. Container Intermediate-level Container • JPanel: wichtigste und flexibelste Panel-Klasse • JScroll. Pane: ähnl.

3. Container Intermediate-level Container • JPanel: wichtigste und flexibelste Panel-Klasse • JScroll. Pane: ähnl. JPanel mit Scrollbars • JTabbed. Pane: unterstützt Darstellung mehrerer Panels, wobei jeweils nur einer ausgewählt ist • JTool. Bar: enthält eine Gruppe von Elementen in einer Zeile oder Spalte - intermediate-level Container dienen zur Gruppierung und Anordnung von Elementen

4. Applikationsgerüst 1: import java. awt. event. *; 2: import javax. swing. *; 3:

4. Applikationsgerüst 1: import java. awt. event. *; 2: import javax. swing. *; 3: 4: public class Framework extends JFrame { 5: public Framework() { 6: super("Application Title"); 7: // Hier die Komponenten einfügen 8: } 9: 10: public static void main(String[] args) { 11: JFrame frame = new Framework(); 12: 13: Window. Listener l = new Window. Adapter() { 14: public void window. Closing(Window. Event e) { 15: System. exit(0); 16: } 17: }; 18: frame. add. Window. Listener(l); 19: 20: frame. set. Visible(true); 21: } 22: }

4. Event Listener • • Action. Listener: Aktionsereignisse, durch Benutzer ausgelöst Adjustment. Listener Focus.

4. Event Listener • • Action. Listener: Aktionsereignisse, durch Benutzer ausgelöst Adjustment. Listener Focus. Listener Item. Listener Key. Listener: Tastaturereignisse; werden erzeugt, wenn Benutzer Text über die Tastatur eingibt Mouse. Listener: Mausereignisse (bei Mausklick, Betreten oder Verlassen einer Komponente) Mouse. Motion. Listener: Mausereignisse bei Bewegung der Maus über eine Komponente Window. Listener: Ereignisse, die von Fenstern erzeugt werden, wenn sie maximiert, minimiert, verschoben oder geschlossen werden

4. Event Listener - Paket java. awt. event beinhaltet alle Event Listener - die

4. Event Listener - Paket java. awt. event beinhaltet alle Event Listener - die folgende Klasse ist so deklariert, dass sie sowohl Aktions- als auch Textereignisse behandeln kann: public class Suspense extends JFrame implements Action. Listener, Text. Listener { //. . . } - es muß die Methode add. Action. Listener() für jede Komponente aufgerufen werden, die ein Aktionsereignis erzeugt - erst einer Komponente Listener hinzufügen und alle anderen Konfigurationen vornehmen, bevor diese in irgendeinen Container einfügt wird

4. Event Listener - get. Source()-Methode verwenden, um das Objekt zu ermitteln, das ein

4. Event Listener - get. Source()-Methode verwenden, um das Objekt zu ermitteln, das ein Ereignis erzeugt hat - get. Action. Command() verwenden, um mehr Informationen über die Quelle eines Ereignisses zu erhalten JButton sort = new JButton("Sort"); sort. set. Action. Command("Sort Files");

5. Widgets 1 JScroll. Pane: JText. Pane: JPassword. Field: JEditor. Pane:

5. Widgets 1 JScroll. Pane: JText. Pane: JPassword. Field: JEditor. Pane:

5. Widgets 2 JScroll. Bar: JProgress. Bar: JSlider: JCombo. Box:

5. Widgets 2 JScroll. Bar: JProgress. Bar: JSlider: JCombo. Box:

5. Widgets 3 JList: JMenu: JList mit Grafiken:

5. Widgets 3 JList: JMenu: JList mit Grafiken:

5. Widgets 4 JPopup. Menu: JTree / JSplit. Pane: JSeperator: Box. Layout:

5. Widgets 4 JPopup. Menu: JTree / JSplit. Pane: JSeperator: Box. Layout:

5. Widgets 4 JTabbed. Pane: JColor. Chooser:

5. Widgets 4 JTabbed. Pane: JColor. Chooser:

6. Beispielprogramm JTabbed. Pane: • Teilung der Benutzerschnittstelle in gleich große Fenster • Auswahl

6. Beispielprogramm JTabbed. Pane: • Teilung der Benutzerschnittstelle in gleich große Fenster • Auswahl über Reiter (Tabs) JTabbed. Pane content. Panel= new JTabbed. Pane(); cp, cp 1 = new JPanel(); […] content. Panel. add("Haupt. Features", cp); content. Panel. add("JTree", cp 1); set. Content. Pane(content. Panel);

6. Beispielprogramm JButton: • sendet Action. Event beim Drücken JButton b 1 = new

6. Beispielprogramm JButton: • sendet Action. Event beim Drücken JButton b 1 = new JButton("Metal"); b 1. add. Action. Listener(this); //zum JPanel hinzufügen a. Panel. add(b 1);

6. Beispielprogramm Tool. Tips & Hot. Keys JTool. Tip: • Alle Komponenten können kontextsensitive

6. Beispielprogramm Tool. Tips & Hot. Keys JTool. Tip: • Alle Komponenten können kontextsensitive Hinweise anzeigen b 1. set. Tool. Tip. Text("Auf Metal umstellen"); Hot. Key / Mnemonic: • Alt + Hot. Key b 1. set. Mnemonic('m');

6. Beispielprogramm Pluggable Look and Feel • Gibt die Darstellungsform der Komponenten vor •

6. Beispielprogramm Pluggable Look and Feel • Gibt die Darstellungsform der Komponenten vor • Zur Laufzeit änderbar UIManager. set. Look. And. Feel(„javax. swing. plaf. metal. Metal. Look. And. Feel“); UIManager. set. Look. And. Feel(„com. sun. java. swing. plaf. windows. Windows. Look. And. Feel“); UIManager. set. Look. And. Feel(„com. sun. java. swing. plaf. motif. Motif. Look. And. Feel“); Swing. Utilities. update. Component. Tree. UI(this. get. Content. Pane());

6. Beispielprogramm JOption. Pane: • bietet sich für typische Dialoge an • Meldungsarten: allgemeine

6. Beispielprogramm JOption. Pane: • bietet sich für typische Dialoge an • Meldungsarten: allgemeine Meldung, Fehlermeldung, Informationsmledung, Frage, Warnung JOption. Pane. show. Message. Dialog(cp, "Mac Benutzeroberfläche ist auf Windows nicht verfügbar!", "Mac-UI", JOption. Pane. ERROR_MESSAGE);

6. Beispielprogramm JFile. Chooser: • zur Dateiauswahl JFile. Chooser fc = new JFile. Chooser();

6. Beispielprogramm JFile. Chooser: • zur Dateiauswahl JFile. Chooser fc = new JFile. Chooser(); fc. set. Current. Directory(new File("C: \Programme")); fc. show. Open. Dialog(this);

6. Beispielprogramm Mouse. Listener / Mouse. Motion. Listener mouse. Entered(Mouse. Event e) mouse. Pressed(Mouse.

6. Beispielprogramm Mouse. Listener / Mouse. Motion. Listener mouse. Entered(Mouse. Event e) mouse. Pressed(Mouse. Event e) mouse. Clicked(Mouse. Event e) mouse. Exited(Mouse. Event e) mouse. Released(Mouse. Event e)

6. Beispielprogramm JTree tree = new JTree(); Default. Mutable. Tree. Node root = new

6. Beispielprogramm JTree tree = new JTree(); Default. Mutable. Tree. Node root = new Default. Mutable. Tree. Node("Menü"); Default. Mutable. Tree. Node swing = new Default. Mutable. Tree. Node("Swing"); […] Default. Mutable. Tree. Node jbutton = new Default. Mutable. Tree. Node(„JButton“); […] root. add(swing); swing. add(jbutton);

Tutorials http: //java. sun. com/docs/books/tutorial/uiswing http: //www. galileocomputing. de/openbook/javainsel/java-16. htm

Tutorials http: //java. sun. com/docs/books/tutorial/uiswing http: //www. galileocomputing. de/openbook/javainsel/java-16. htm