Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch

Ähnliche Präsentationen


Präsentation zum Thema: "Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch"—  Präsentation transkript:

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

2 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

3 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

4 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)

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

6 2. Vergleich von AWT und Swing

7 2. Vergleich von AWT und Swing

8 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

9 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

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

11 4. Applikationsgerüst 2: import javax.swing.*; 3:
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: WindowListener l = new WindowAdapter() { 14: public void windowClosing(WindowEvent e) { 15: System.exit(0); 16: } 17: }; 18: frame.addWindowListener(l); 19: 20: frame.setVisible(true); 21: } 22: }

12 4. Event Listener ActionListener: Aktionsereignisse, durch Benutzer ausgelöst AdjustmentListener FocusListener ItemListener KeyListener: Tastaturereignisse; werden erzeugt, wenn Benutzer Text über die Tastatur eingibt MouseListener: Mausereignisse (bei Mausklick, Betreten oder Verlassen einer Komponente) MouseMotionListener: Mausereignisse bei Bewegung der Maus über eine Komponente WindowListener: Ereignisse, die von Fenstern erzeugt werden, wenn sie maximiert, minimiert, verschoben oder geschlossen werden

13 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 ActionListener, TextListener {     // ... } es muß die Methode addActionListener() 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

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

15 5. Widgets 1 JScrollPane: JTextPane: JPasswordField: JEditorPane:

16 5. Widgets 2 JScrollBar: JProgressBar: JSlider: JComboBox:

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

18 5. Widgets 4 JPopupMenu: JSeperator: JTree / JSplitPane: BoxLayout:

19 5. Widgets 4 JTabbedPane: JColorChooser:

20 6. Beispielprogramm JTabbedPane
Teilung der Benutzerschnittstelle in gleich große Fenster Auswahl über Reiter (Tabs) JTabbedPane contentPanel= new JTabbedPane(); cp,cp1 = new JPanel(); […] contentPanel.add("HauptFeatures",cp); contentPanel.add("JTree",cp1); setContentPane(contentPanel);

21 6. Beispielprogramm JButton
sendet ActionEvent beim Drücken JButton b1 = new JButton("Metal"); b1.addActionListener(this); //zum JPanel hinzufügen aPanel.add(b1);

22 6. Beispielprogramm ToolTips & HotKeys
JToolTip: Alle Komponenten können kontextsensitive Hinweise anzeigen b1.setToolTipText("Auf Metal umstellen"); HotKey / Mnemonic: Alt + HotKey b1.setMnemonic('m');

23 6. Beispielprogramm Pluggable Look and Feel
Gibt die Darstellungsform der Komponenten vor Zur Laufzeit änderbar UIManager.setLookAndFeel(„javax.swing.plaf. metal.MetalLookAndFeel“); UIManager.setLookAndFeel(„com.sun.java.swing.plaf.windows.WindowsLookAndFeel“); UIManager.setLookAndFeel(„com.sun.java.swing.plaf.motif.MotifLookAndFeel“); SwingUtilities.updateComponentTreeUI(this. getContentPane());

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

25 6. Beispielprogramm JFileChooser
zur Dateiauswahl JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File("C:\\Programme")); fc.showOpenDialog(this);

26 6. Beispielprogramm MouseListener / MouseMotionListener
mouseEntered(MouseEvent e) mousePressed(MouseEvent e) mouseClicked(MouseEvent e) mouseExited(MouseEvent e) mouseReleased(MouseEvent e)

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

28 Tutorials http://java.sun.com/docs/books/tutorial/uiswing


Herunterladen ppt "Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch"

Ähnliche Präsentationen


Google-Anzeigen