Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch

Slides:



Advertisements
Ähnliche Präsentationen
programmiert April-Juni 2003 von Knut Riechmann
Advertisements

Ein Beispiel in Java.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Praktikum Systementwicklung
Java: Programmierung grafischer Oberflächen
Java: Reversi Spielbrett
Java: Objektorientierte Programmierung
Java: Programmierung grafischer Oberflächen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Einfache Komponenten in SWING
Java: Grundlagen der Sprache
Komponenten zur Gestaltung des Layouts
Java: Grundlagen der Objektorientierung
MVC.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Grafische Benutzeroberfläche
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 6 Model-View-Controler als Grundlage für Nutzerschnittstellen Sommersemester 2003 Lars Bernard.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Objektorientierte Programmierung JDK-Klassenbibliothek
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
Java Layout Manager (JLM) Marc Dziadek
Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Programmieren mit JAVA
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Swing1 SWING. DVG Swing2 ColorChooser Die Klasse JColorChooser bietet eine komfortable Möglichkeit, Farben auszuwählen. Konstruktor:
EDV Swing1 Swing. EDV Swing 2 Swing - AWT AWT passt sein L&F der Umgebung automatisch an. Swing kann sein L&F selbst verändern, auch zur.
SWING DVG Swing.
SWING DVG Swing.
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
04 - Actions Actions Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden.
DVG Swing SWING. DVG Swing 2 ColorChooser Die Klasse JColorChooser bietet eine komfortable Möglichkeit, Farben auszuwählen. Konstruktor:
06-EMMA-GUI Das EMMA-GUI. 06-EMMA-GUI 2 Aufteilung des Bildes (Applikation) Menü - Balken Dateiwerkzeuge Zeichenwerkzeuge Meldungen, Informationen, Fehler.
© 2005 Pohlig - Taulien Datenströme GK Informatik 1 Datenströme.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
© 2004 Pohlig - Taulien Swing Ereignissteuerung. © 2004 Pohlig - Taulien GK Informatik mit Java 2 Auf Button-Klick reagieren.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Objektorientierte Modellierung
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
Erste Schritte mit Eclipse Neues Projekt erstellen (1)
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
AWT und JFC Abstract Windowing Toolkit
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik 1 Thema 21: GUI und verschachtelte.
Applets Java für’s Web.
Programmiermethodik Übung 6
Java: Programmierung grafischer Oberflächen
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Mahmoud Zoabi Khaled Isa
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Variablenkonzept Klassisch, in Java Basistyp
Programmierpraktikum Java SS 2005
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Einführung in die OOP in Java
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 Event Handling in der Programmiersprache Java.
Verwendung von Graphical-User-Interfaces der Bibliothek: javax.swing.*
Java-Kurs Übung Klassen und Objekte: Vererbung (Fortsetzung)
Programmiermethodik Übung 7
 Präsentation transkript:

Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch Gliederung: Einleitung Vergleich von AWT und Swing Container Applikationsgerüst / Event Listener Widgets 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: Kontrollelemente/Komponenten Container LayoutManager Events

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

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: }

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

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

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");

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

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

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

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

5. Widgets 4 JTabbedPane: JColorChooser:

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

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

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

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());

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

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

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

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

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