30.01.2006, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 Event Handling in der Programmiersprache Java.

Slides:



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

Ein Beispiel in Java.
Kritische Betrachtung
Zusammenfassung des Kapitels 8
Java – Swing Vortrag von Raphaela Wrede und Anja Jentzsch
Praktikum Systementwicklung
Java: Programmierung grafischer Oberflächen
Java: Reversi Spielbrett
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
Java: Programmierung grafischer Oberflächen
Einfache Komponenten in SWING
FH-Hof Interaktion Richard Göbel. FH-Hof Interaktion mit der Klasse Behavior Behavior-Objekte sind Knoten des Szenengraphen. Behavior-Objekte werden durch.
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.
IF-ELSE-IF-Ketten Weiter mit PP..
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 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
AWT – Detailbetrachtung Java 3D – Seminar im Wintersemester 2002/2003 Christian Schneider.
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.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
Programmieren mit JAVA
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Klassenhierarchie Person Kunde Goldkunde Lieferant Object.
Beanifiing the Browser Beans implementieren Serializable.
1DVG3 - Eventbehandlung Eventbehandlung. DVG3 - Eventbehandlung 2 Events Events sind externe Ereignisse, die parallel zum normalen Programmablauf auftreten.
DVG1 - Applets1 Applets. DVG1 - Applets2 Die Klasse Applet n Applets sind Grafikobjekte, die unter Steuerung eines anderen Programms (z.B. eines Browsers,
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
UNDO & SELECT Vortrag : Martin Hiersche
SWING DVG Swing.
SWING DVG Swing.
Klassen 02 - Klassen.
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.
© 2004 Pohlig - Taulien Swing Ereignissteuerung. © 2004 Pohlig - Taulien GK Informatik mit Java 2 Auf Button-Klick reagieren.
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
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Java: Programmierung grafischer Oberflächen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Java-AG Benutzeroberflächen Juni 2001 Michael Haas.
CuP - Java Achzehnte (und LETZTE. ) Vorlesung : 1
Programmiervorkurs WS 2014/15 Methoden
Java-Kurs Übung Benutzeroberflächen und Graphik
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Praktikum Mobile Web 2.0 – 2.Teil Wolfgang Wörndl, Robert Eigner.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 1 Beispiel class SpreadSheet { int cellA1, cellA2, cellA3; synchronized.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Erstellung von Benutzerschnittstellen in der Programmiersprache 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, Generisches Programmieren, Informatik II, FSU Jena, SS Generisches Programmieren.
Dr. Wolfram Amme, Virtuelle Vererbung, Informatik II, FSU Jena, SS Auflösung von Konflikten bei Mehrfachvererbung Umbenennung mehrdeutiger Methoden.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
1 Eine Einführung in die objektorientierte Programmierung.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Kapselung von Daten I Gründe für die Datenkapselung Datenkonsistenz leichtere.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Synchronisation mit Monitoren Threads können in Java parallel ablaufen, oft.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Wie überwacht man Objekte im "Alltag" ?
Praktische Informatik 1
Die allgemeine Liste.
Abstract Windowing Toolkit
Abstract Windowing Toolkit
Mit der Turtle Java Programmieren
Kurs: Programmieren in Java Tag 5
Raphael Fischer Informatik II - Übung 06 Raphael Fischer
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 Event Handling in der Programmiersprache Java

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 2 Das Ereignismodell des JDK 1.1 Aktivitäten in der Benutzerschnittstelle lösen sogenannte Ereignisse aus Gruppe von Ereignissen wird durch Objekte einer bestimmten Klasse repräsentiert Ereignisverarbeitung wird in Form eines Delegationsmodells durchgeführt Ereignisempfänger müssen sich bei der Ereignisquelle (z.B. Button) registrieren lassen beim Auslösen von Ereignissen werden für die Empfängerobjekte bestimmte Methoden aufgerufen

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 3 Klassenhierarchie der Ereignis-Klassen AdjustmentEvent ComponentEvent ItemEvent ContainerEvent FocusEvent InputEvent TextEvent PaintEvent WindowEvent KeyEventMouseEvent EventObject AWTEvent ActionEvent

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 4 Methoden der Klasse AWTEvent getSource() - liefert einen Verweis auf die Ereignisquelle getID() - liefert die ID des Ereignisses ActionEvent ACTION_PERFORMEDButton,List KeyEventKEY_PRESSED, KEY_RELEASEDComponent KEY_TYPED MouseEventMOUSE_ENTERED, MOUSE_EXITEDComponent MOUSE_PRESSED, MOUSE_RELEASED MOUSE_MOVED, MOUSE_DRAGGED ItemEventSELECTED, DESELECTEDList, Choice ITEM_STATE_CHANGED AdjustmentEvent TRACK, UNIT_INCREMENT, Scrollbar UNIT_DECREMENT, BLOCK_INCREMENT, isConsumed() - true, falls das Ereignis schon verarbeitet ist consume() - verarbeitet das Ereignis

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 5 Delegationsmodell Ereignis wird durch drei Elemente repräsentiert die Komponente, in der sich das Ereignis zugetragen hat die Art des Ereignisses die Komponenten, die über das Ereignis informiert werden wollen Zusammenspiel dieser Elemente Ereignisquelle EventListener implements XXXListener Verweis auf EventListener Registrierung(1) durch addXXXListener()-Methode Benachrichtigung(2)

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 6 Registrierung Implementierung einer EventListener-Schnittstelle class MyListener implements ItemListener{ void itemStateChanged(ItemEvent e){... } } die Klasse wird instanziert die Klasse wird bei der Ereignisquelle registriert List list = new List(); list.addItemListener(new MyListener());

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 7 Beispiel import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class ActionApplet extends Applet implements ActionListener { private Button b; public void init() { b = new Button("Java"); b.addActionListener(this); add(b); } public void actionPerformed(ActionEvent e) { System.out.println("Action in Button Java"); }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 8 Beispiel public class MouseListenerDemo extends Applet implements MouseListener { public void init() { setBackground(Color.blue); addMouseListener(this); } public void mouseClicked(MouseEvent e) { getAppletContext().showStatus( "click at x:"+e.getX()+" y:"+e.getY()); } public void mousePressed(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 9 Event-Adapter-Klassen public class MouseDemo extends Applet { public void init() { setBackground(Color.blue); addMouseListener(new MyMouseAdapter(this)); } public void showPoint(int x, int y) { getAppletContext().showStatus("click at x:" +x+" y:"+y); } class MyAdapter extends MouseAdapter { protected MouseDemo demo; public MyAdapter(MouseDemo demo) { this.demo = demo; } public void mouseClicked(MouseEvent e) { demo.showPoint(e.getX(), e.getY()); } }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 10 Die Klasse ActionEvent ein Action-Event wird ausgelöst, wenn in einer Komponente eine Aktion geschieht Button wird gedrückt Eingabe in einem Textfeld wird durch Return-Taste abgeschlossen Auswahl eines Elements aus einer Liste, Choice oder Menü Bearbeitung über Implementierung des Interface ActionListener public void actionPerformed(ActionEvent) Methoden der Klasse ActionEvent String getActionCommand() - liefert das Kommando zu dieser Aktion int getModifier() - liefert Modifier-Tasten (Shift, Control, Meta) die während der Aktion gedrückt wurden

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 11 Beispiel public class ActionEventDemo extends Applet implements ActionListener { public void init () { Button open = new Button("open"); Button close = new Button("close"); add(open); add(close); open.addActionListener(this); close.addActionListener(this); open.setActionCommand("open"); close.setActionCommand("close"); } public void actionPerformed(ActionEvent e) { if ("open".equals(e.getActionCommand())) getAppletContext().showStatus("action in open"); if ("close".equals(e.getActionCommand())) getAppletContext().showStatus("action in close"); }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 12 Die Klasse MouseEvent Mouse-Events werden ausgelöst, sobald der Benutzer die Maustaste betätigt oder die Maus bewegt Bearbeitung über Implementierung der Interfaces MouseListener MouseMotionListener Methoden der Klasse MouseEvent int getX() - x-Position des Ereignisses int getY() - y-Position des Ereignisses int getClickCount() - Anzahl aufeinanderfolgender Mausklicks int getModifiers() - Abfrage welche Maustaste gedrückt wurde InputEvent.BUTTON1_MASK => Links InputEvent.BUTTON2_MASK => Mitte InputEvent.BUTTON3_MASK => Rechts

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 13 MouseListener und MouseMotionListener MouseListener public void mousePressed(MouseEvent); public void mouseReleased(MouseEvent); public void mouseClicked(MouseEvent); public void mouseEntered(MouseEvent); public void mouseExited(MouseEvent); MouseMotionListener public void mouseMoved(MouseEvent); public void MouseDragged(MouseEvent);

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 14 Beispiel public class MouseEventDemo extends Applet { Rectangle rect; public void init() { rect = new Rectangle(90, 20, 70, 50); addMouseMotionListener(new DemoMouseMotionAdapter(this)); } public void paint(Graphics g) { g.setColor(Color.blue); g.fillRect(rect.x, rect.y, rect.width, rect.height); } public void isInside(int x, int y) { if (rect.contains(x,y)) getAppletContext().showStatus("Mouse is in"); else getAppletContext().showStatus("Mouse is out"); }

, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, WS 2005/06 15 Beispiel class DemoMouseMotionAdapter extends MouseMotionAdapter { protected MouseEventDemo demo; public DemoMouseMotionAdapter(MouseEventDemo demo) { this.demo = demo; } public void mouseMoved(MouseEvent e) { demo.isInside(e.getX(), e.getY()); }