Java Swing Vortrag von Raphaela Wrede und Anja
- Slides: 28
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 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 • 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 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 3. Layout. Manager 4. Events
2. Vergleich von AWT und Swing AWT
2. Vergleich von AWT und Swing
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 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. 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: 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. 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 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 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 2 JScroll. Bar: JProgress. Bar: JSlider: JCombo. Box:
5. Widgets 3 JList: JMenu: JList mit Grafiken:
5. Widgets 4 JPopup. Menu: JTree / JSplit. Pane: JSeperator: Box. Layout:
5. Widgets 4 JTabbed. Pane: JColor. Chooser:
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 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 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 • 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 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(); 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. 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 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
- Perbedaan awt dan swing
- Vortrag stressprävention
- Vortrag zusammenarbeit
- Transparente bewertung
- Java swing tutorial
- Box layout java
- Java swing
- Java containment hierarchy
- Java awt swing
- Picture of java
- Java swing mvc example
- Java swing browser
- Java swing form example
- Jpanel
- Java swing frame
- Java swing
- Java swing form example
- Swing tutorial java
- Awt vs swing performance
- Java swing mvc example
- Mvc java swing
- Boxlayout swing
- Saját képek
- Swing layout
- Import java.applet.*
- Java swing draw text
- Java swing responsive
- Java swing panel
- Import java util scanner