04 - Actions Actions. 04 - Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden.

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Objektorientierte Programmierung
der Universität Oldenburg
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Ein Beispiel in Java.
Zusammenfassung des Kapitels 8
Verteilte Software - Java - Prozedurale Programmierung 1
Grundlagen der Programmierung (GP) Prof. Dr. H. Schlingloff Joachim Hänsel
Java: Programmierung grafischer Oberflächen
Java: Programmierung grafischer Oberflächen
Java: Dynamische Datentypen
FH-Hof Servlets Richard Göbel. FH-Hof Konzept Servlets werden auf der Server-Seite durch ein Formular aufgerufen werten die Eingaben aus einem Formular.
Einfache Komponenten in SWING
GridBagLayout Richard Göbel.
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.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
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.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
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
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
Programmieren mit JAVA
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
1DVG3 - Paint Teil 2 Paint Teil2. DVG3 - Paint Teil 2 2 Weitere Entwicklungen Hinzufügen verschiedener Werkzeuge: Punkte Linien Rechtecke, Rechtecke mit.
1DVG3 - eigene AWT-Komponenten Entwicklung eigener AWT-Komponenten.
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 Einführung in Java1 Einführung in JAVA.
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.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
SWING DVG Swing.
03 - Paint Das Zeichenprogramm EMMA Paint2 Aufgabenstellung Entwicklung eines ausschließlich in JAVA programmierten Graphikprogrammes. Vergleichsprodukte:
06-EMMA-GUI Das EMMA-GUI. 06-EMMA-GUI 2 Aufteilung des Bildes (Applikation) Menü - Balken Dateiwerkzeuge Zeichenwerkzeuge Meldungen, Informationen, Fehler.
05 - Reflection Das Reflection API Reflection2 Ziel Es kommt vor, dass eine Methode ein Objekt als Parameter übergeben bekommt, ohne dass bekannt.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 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: Eine GUI für die Klasse Mathematik Kurs: Come Together 1 April 2005 Eine GUI für die Klasse Mathematik.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
© 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,
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Universität zu Lübeck Institut für Informationssysteme Die Präsentationsschicht - mit Swing.
AWT und JFC Abstract Windowing Toolkit
Java: Programmierung grafischer Oberflächen
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Variablenkonzept Klassisch, in Java Basistyp
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
Learning By Doing Ereignissteuerung (Events) prozedural ereignisgesteuert Unterprogrammaufruf an fest codierter Stelle Wann immer der Event auftritt, führe.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Programmiervorkurs WS 2014/15 Methoden
© 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.
GUI Programmierung in Java Branimir Djordjevic. GUI - Wichtige Begriffe -  Die Swing-Bibliothek in Java stellt zum Beispiel die folgenden Windows zur.
Grundkurs Informatik mit Java
 Präsentation transkript:

04 - Actions Actions

04 - Actions 2 Motivation In verschiedenen Swing-Komponenten werden ausgelöste Aktionen durch ActionListener behandelt. Häufig werden gleiche Aktionen durch verschiedene Swing-Komponenten ausgelöst. Z.B. durch MenuItems, Buttons, Textfelder, Comboboxen Das Erscheinungsbild dieser Komponenten ähnelt sich häufig. Es werden gleiche Beschriftungen und Icons verwendet. Es werden gleiche ToolTip-Texte und Mnemonic und Accelerator Keys verwendet. Die Komponente sind alle gleichzeitig zu aktivieren bzw. zu deaktivieren. Es ist zweckmäßig die Realisierung der Aktion sowie das Erscheinungsbild der Swing-Komponenten an einer Stelle zu zentralisieren. Interface Action und abstrakte Klasse AbstractAction

04 - Actions 3 Das Interface Action Das Interface Action ist abgeleitet vom Interface ActionListener und erbt damit die Methode public void actionPerformed (ActionEvent e) Bei einer Swing-Komponente wird ein Action-Object mit der Methode public void setAction(Action a) registriert. Das selbe Action-Objekt kann bei verschiedenen Komponenten registriert werden. Mit den Methoden public boolean isEnabled() bzw. public void setEnabled(boolean b) des Action-Interfaces wird der Status aller Komponenten bei dem das Action-Objekt registriert ist abgefragt bzw. modifiziert.

04 - Actions 4 Die Methoden public Object getValue(String key) bzw. public void putValue(String key, Object value) fragen den Wert einer Eigenschaft ab bzw. modifizieren diesen. Folgende Schlüssel sind definiert: NAME : entspricht setText(…) SHORT_DESCRIPTION : entspricht setToolTipText()…) LONG_DESCRIPTION : Text für Online-Helps SMALL_ICON : entspricht setIcon(…) ACTION_COMMAND_KEY : entspricht setActionCommand(…) ACCELERATOR_KEY : entspricht setAcceleratorKey(…) MNEMONIC_KEY : entspricht setMnemonic(…) Anwendungsbeispiel: putValue(Action.SHORT_DESCRIPTION, "Action");

04 - Actions 5 JButtonJMenuItemJCheckBoxJRadioButtonJTextFieldJComboBox NAME XXXX SHORT_DESCRIPTION XXXXX LONG_DESCRIPTION SMALL_ICON XX ACTION_COMMAND_KEY ACCELERATOR_KEY MNEMONIC_KEY X

04 - Actions 6 Die abstrakte Klasse AbstractAction Die abstrakte Klasse AbstractAction implementiert alle Methoden des Interfaces Action außer der Methode actionPerformed, die vom Interface ActionListener geerbt wird. Die einfachste Variante der Nutzung ist das Ableiten einer Klasse, die die Methode actionPerformed implementiert. Die Nutzung ist also genauso einfach wie die Nutzung des Interfaces ActionListener.

04 - Actions 7 Beispiel TestAction import javax.swing.*; import java.awt.*; import java.awt.event.*; public class TestActions { public static Action act = new AbstractAction("Action Component", new mageIcon("action.gif")){ { putValue(Action.SHORT_DESCRIPTION, "Action ToolTipText"); } public void actionPerformed(ActionEvent e) { String src = e.getSource().getClass().getName(); if (src.equals("javax.swing.JComboBox")) { JComboBox cb = (JComboBox)(e.getSource()); if ( !cb.getSelectedItem().equals(getValue(Action.NAME)) ) return; } System.out.println("Action ausgelöst von "+src); } };

04 - Actions 8 public static void main(String[] args) { JFrame fr = new JFrame("TestActions"); JMenuBar mb = new JMenuBar(); fr.setJMenuBar(mb); JMenu m = new JMenu("test"); mb.add(m); JMenuItem mi = new JMenuItem(); mi.setAction(act); m.add(mi); Container cp = fr.getContentPane(); cp.setLayout(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); gbc.anchor=GridBagConstraints.WEST; gbc.insets=new Insets(10, 10, 10, 10); gbc.gridx=0; cp.add(new JLabel("JButton"), gbc); JButton jb = new JButton(); jb.setAction(act); gbc.gridx=1; cp.add(jb, gbc);

04 - Actions 9 gbc.gridx=0; cp.add(new JLabel("JComboBox"), gbc); final JComboBox co = new JComboBox(new Object [] {"Zeile1", "Zeile2", act.getValue(Action.NAME), "Zeile4", "Zeile5"} ); co.setAction(act); gbc.gridx=1; gbc.fill=GridBagConstraints.HORIZONTAL; cp.add(co, gbc); gbc.gridx=0; gbc.gridwidth=2; final JButton activateButton = new JButton("disable"); activateButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ activateButton.setText(act.isEnabled()?"enable":"disable"); act.setEnabled(!act.isEnabled()); } }); cp.add(activateButton, gbc);

04 - Actions 10 gbc.gridx=0; cp.add(new JLabel("setToolTipText"), gbc); final JTextField tt = new JTextField(); tt.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { act.putValue(Action.SHORT_DESCRIPTION, tt.getText()); } }); gbc.gridx=1; cp.add(tt, gbc); fr.setBounds(0, 0, 400, 400); fr.setVisible(true); fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }