Grundlagen der Informatik für Ingenieure I

Werbung
Grundlagen der Informatik für Ingenieure I
10. Eventhandling in Java
GdI
10.1 Ereignisse (Events vs. Exceptions)
10.2 Eventhandling in Java
10.3 Listener
10.4 Adapter
10.5 Beispiel: Buttons
10.6 Anonymous Inner Classes
10.7 Mouse- und Key- Eventhandling
10.8 Listener (Übersicht)
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.1
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.1 Ereignisse (Events vs. Exceptions)
10.1 Ereignisse (Events vs. Exceptions)
■ Java unterscheidet drei Arten von Ereignissen:
◆ Errors: Interne Fehler in der JVM bzw. vom Benutzerprogramm zur
Laufzeit nicht behandelbare Fehler
◆ Exceptions: alle anderen Ereignisarten, ausgenommen
Interaktionsereignisse mit dem GUI, unterteilt in
• Runtime Exceptions
• I/O-Exceptions
• sonstige Exceptions
◆ Events: Interaktionsereignisse mit dem GUI (dieses Kapitel)
GdI
Errors und Exceptions: Siehe spätere Kapitel
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.2
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.2 Eventhandling in Java
10.2 Eventhandling in Java
◆ Eventhandling in Java ist Teil des AWT-package.
◆ Es dient der Kommunikation eines Programmsystems mit der
“Benutzeroberfläche”, dem User-Interface (UI; GUI).
◆ Es handelt sich hierbei z. B. um
• Keyboard - Betätigungen
• Mouse - Bewegungen oder Mouse-Clicks
• Interaktionen mit der Graphischen Benutzeroberfläche.
◆ Wir müssen in unserem Programm eine Konstruktion vorsehen, die
aufpasst, ob ein solches Ereignis eintritt.
GdI
◆ Das ist Aufgabe der "Listener".
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.3
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.3 Listener
10.3 Listener
◆ Das AWT-Package stellt uns, geordnet nach Eventklassen,
“Listener” zur Verfügung.
◆ Listener sind Interfaces, die durch ihre Definition das Handling
mit Events vorgeben.
◆ Beispiele für Listener sind:
MouseListener
ActionListener
KeyListener
GdI
◆ Damit das Laufzeitsystem weiß, dass wir einen solchen Dienst in
Anspruch nehmen wollen, müssen wir Listener bei der jeweiligen
AWT-Komponenten (Button, Checkbox, ... ) anmelden (registrieren).
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.4
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.3 Listener
10.3 Listener
◆ Für jeden Listener gibt es eine add-method() mit der man ihn registrieren
lassen kann, z. B.:
addMouseListener(...)
addMouseMotionListener(...)
addKeyListener(...)
◆ Zu jedem Listener existiert eine entsprechende Event class,
• z. B. zum MouseListener die Klasse MouseEvent
oder zum ActionListener die Klasse ActionEvent
• In diesen Klassen sind Methoden definiert, die man bei der Behandlung
der zugehörigen Events benötigt.
GdI
• Tritt ein Event auf, wird ein Objekt der zugehörigen Event class
erzeugt und der entsprechenden Listener - Methode übergeben.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.5
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.4 Adapter
10.4 Adapter
◆ Bei der Verwendung eines Interfaces muss dieses vollständig implementiert
werden, auch dann, wenn man nur einen Teil der Funktionalität ausnutzen
will. Aus diesem Grund gibt es für viele Listener Adapter.
◆ Adapter sind (abstrakte) Klassen! Sie implementieren vollständig im Sinne von Methodendefinitionen, u. U. auch mit leerem Rumpf - die
entsprechenden Interfaces z. B.
public abstract class MouseAdapter.....
implements MouseListener {...}
GdI
◆ Wenden wir Adapter an, brauchen wir nur die Methoden
zu implementieren (overriding), die wir zur Lösung unseres
Problems benötigen.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.6
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5 Beispiel: Buttons
◆ Beispiel für die Anwendung eines Listeners:
// button actions
import java.awt.*;
import java.awt.event.*;
public class ButtonActionsTest extends java.applet.Applet {
Button redButton, blueButton, greenButton;
GdI
class RedButtonListener implements ActionListener {
public void actionPerformed( ActionEvent e ) {
setBackground( Color.red );
}
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.7
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5
Beispiel: Buttons
◆ Beispiel für die Anwendung eines Listeners (cont.):
class BlueButtonListener implements ActionListener {
public void actionPerformed( ActionEvent e ) {
setBackground( Color.blue );
}
}
GdI
class GreenButtonListener implements ActionListener {
public void actionPerformed( ActionEvent e ) {
setBackground( Color.green );
}
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.8
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5 Beispiel: Buttons
◆ Beispiel für die Anwendung eines Listeners (cont.):
public void init() {
setFont( new Font( "Helvetiva", Font.BOLD, 72 ) );
setBackground( Color.white );
setLayout( new FlowLayout( FlowLayout.CENTER, 10, 10 ) );
redButton = new Button( "Red" );
RedButtonListener redListener = new RedButtonListener();
redButton.addActionListener( redListener );
add( redButton );
blueButton = new Button( "Blue" );
BlueButtonListener blueListener
= new BlueButtonListener();
blueButton.addActionListener( blueListener);
add( blueButton );
greenButton = new Button( "Green" );
GreenButtonListener greenListener
= new GreenButtonListener();
greenButton.addActionListener( greenListener);
add( greenButton );
GdI
}
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.9
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5 Beispiel: Buttons
◆ Zum Beispiel:
• Es wird das Interface ActionListener verwendet
• Der ActionListener enthält nur eine Methode:
actionPerformed( ActionEvent e )
• Zu actionPerformed gehört die Eventklasse ActionEvent.
• Mit der add-method():
addActionListener( ... )
wird der ActionListener bei dem jeweiligen Button registriert
• Die ButtonListener wurden innerhalb einer anderen Klasse
(der Applet-Klasse) definiert.
GdI
• Man nennt solche Klassen Inner Classes.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.10
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5 Beispiel: Buttons
◆ Compilieren mit javac:
GdI
• Es werden für die äußere Klasse ButtonActionTest und
für die 3 Inner Classes jeweils eine class-Datei (Byte-Code)
erzeugt.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.11
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.5 Beispiel: Buttons
10.5 Beispiel: Buttons
GdI
◆ Ergebnis mit Appletviewer:
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.12
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.6 Anonymous Inner Classes
10.6 Anonymous Inner Classes
◆ Eine Variante der Inner Class ist die Anonymous Inner Class
◆ Beispiel: Definition von Eventhandler-Classes als
Anonymous Inner Classes:
• Es wird für jeden Button ein Eventhandler-Objekt
"ButtonListener" erzeugt.
• Die Definition erfolgt "innerhalb" einer Klasse als sog.
Anonymous Inner Classes.
• Der Compiler generiert jeweils ein separates .class-file.
GdI
• Zur Laufzeit ist dadurch die Zuordnung Event/Eventhandler gegeben.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.13
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.6 Anonymous Inner Classes
10.6 Anonymous Inner Classes
◆ Beispiel: ButtonActionsInnerAnonym
import java.awt.*;
import java.awt.event.*;
public class ButtonActionsInnerAnonym extends java.applet.Applet {
Button redButton, blueButton, greenButton;
public void init() {
setFont( new Font( "Helvetiva", Font.BOLD, 72 ) );
setBackground( Color.white );
setLayout( new FlowLayout( FlowLayout.CENTER, 10, 10 ) );
redButton = new Button( "Red" );
add( redButton );
blueButton = new Button( "Blue" );
add( blueButton );
GdI
greenButton = new Button( "Green" );
add( greenButton );
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.14
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.6 Anonymous Inner Classes
10.6 Anonymous Inner Classes
redButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ){
setBackground( Color.red );
}
} );
blueButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ){
setBackground( Color.blue );
}
} );
greenButton.addActionListener( new ActionListener() {
public void actionPerformed( ActionEvent e ){
setBackground( Color.green );
}
} );
}
GdI
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.15
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.6 Anonymous Inner Classes
10.6 Anonymous Inner Classes
◆ Compilieren mit javac:
GdI
• Es wird für jede Anonymous Inner Class eine class-Datei erzeugt.
die zur Unterscheidung mit Ziffern versehen werden.
• Durch Einführung der Anonymous Inner Classes wird der Code
kürzer und übersichtlicher, durch deutliche Trennung von der Erzeugung
der Buttons und der Registrierung (Anmeldung) der ActionListeners
bei den Buttons.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.16
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.6 Anonymous Inner Classes
10.6 Anonymous Inner Classes
GdI
◆ Ergebnis mit Appletviewer:
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.17
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
◆ Mouse- und Key-Listener:
Listener Interface
MouseListener
Events
Method Definition
mouse down
public void mousePressed(MouseEvent e)
mouse up
public void mouseReleased(MouseEvent e)
mouse enter
public void mouseEntered(MouseEvent e)
mouse exit
public void mouseExited(MouseEvent e)
mouse clicks
public void mouseClicked(MouseEvent e)
(a mouse click is a press followed by a release in the same
location)
MouseMotionListener
KeyListener
mouse move
public void mouseMoved(MouseMotionEvent e)
mouse drag
public void mouseDragged(MouseMotionEvent e)
key down
public void keyReleased(KeyEvent e)
key up
public void keyPressed(KeyEvent e)
key typed
public void keyTyped(KeyEvent e)
GdI
(a key typed is a key down followed by the same key up)
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.18
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
◆ Ein Beispiel mit vollständiger Implementation des Interfaces im Applet:
/* draw lines at each click and drag */
import
import
import
import
java.awt.Graphics;
java.awt.Color;
java.awt.Point;
java.awt.event.*;
public class Lines extends java.applet.Applet
implements MouseListener, MouseMotionListener {
final int MAXLINES = 10;
private Point starts[] = new Point[ MAXLINES ]; // starting points
private Point ends[] = new Point[ MAXLINES ];
// endingpoints
private Point anchor;
// start of current line
private Point currentpoint; // current end of line
private int currline = 0; // number of lines
GdI
public void init() {
setBackground( Color.white );
// register event listeners
addMouseListener( this );
addMouseMotionListener( this );
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.19
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
// needed to satisfy listener interfaces
public
public
public
public
void
void
void
void
mouseMoved( MouseEvent e ) {}
mouseClicked( MouseEvent e ) {}
mouseEntered( MouseEvent e ) {}
mouseExited( MouseEvent e ) {}
public void mousePressed( MouseEvent e ) {
if ( currline < MAXLINES )
anchor = new Point( e.getX(), e.getY() );
else
System.out.println( "Too many lines." );
}
public void mouseReleased( MouseEvent e ) {
if ( currline < MAXLINES )
addline( e.getX(), e.getY() );
}
GdI
public void mouseDragged( MouseEvent e ) {
if (currline < MAXLINES) {
currentpoint = new Point( e.getX(), e.getY() );
repaint();
}
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.20
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
void addline( int x, int y ) {
starts[ currline ] = anchor;
ends[ currline ] = new Point( x, y );
currline++;
currentpoint = null;
anchor = null;
repaint();
}
public void paint( Graphics g ) {
// draw existing lines
for ( int i = 0; i < currline; i++ ) {
g.drawLine( starts[i].x, starts[i].y, ends[i].x, ends[i].y );
}
// draw current line
g.setColor( Color.blue );
if ( currentpoint != null )
g.drawLine( anchor.x, anchor.y, currentpoint.x, currentpoint.y );
}
GdI
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.21
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
GdI
◆ Ergebnis mit Appletviewer:
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.22
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
◆ Ein Beispiel mit Testausgaben auf die Java-Console des Browsers:
/* press a key then use arrows to move it around */
import
import
import
import
import
java.awt.Graphics;
java.awt.Color;
java.awt.Event;
java.awt.Font;
java.awt.event.*;
GdI
public class Keys extends java.applet.Applet
implements KeyListener {
private char currkey;
private int currx;
private int curry
private boolean notmove = true;
public void init() {
currx = ( this.getWidth() / 2 ) -8; //default
curry = ( this.getHeight() / 2 ) -16;
setBackground( Color.white );
setFont( new Font( "Helvetica", Font.BOLD, 36 ) );
addKeyListener( this );
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.23
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
public void keyReleased( KeyEvent e) { }
public void keyTyped( KeyEvent e ) { }
public void keyPressed( KeyEvent e ) {
GdI
if ( e.getKeyCode() ==
curry += 5;
notmove = false;
}
if ( e.getKeyCode() ==
curry -= 5;
notmove = false;
}
if ( e.getKeyCode() ==
currx -= 5;
notmove = false;
}
if ( e.getKeyCode() ==
currx += 5;
notmove = false;
}
KeyEvent.VK_DOWN ) {
KeyEvent.VK_UP ) {
KeyEvent.VK_LEFT ) {
KeyEvent.VK_RIGHT ) {
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.24
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
if ( notmove ) {
currkey = e.getKeyChar();
}
notmove = true;
repaint();
}
public void paint(Graphics g) {
if ( currkey != 0 ) {
g.drawString( String.valueOf( currkey ), currx, curry );
}
}
GdI
}
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.25
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.7 Mouse- und Key - Eventhandling
10.7 Mouse- und Key - Eventhandling
GdI
◆ Ergebnis mit Appletviewer:
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.26
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.8 Listener (Übersicht)
10.8 Listener (Übersicht)
Listener
Methods
ActionListener
actionPerformed(ActionEvent e)
AdjustmentListener
adjustmentValueChanged(AdjustmentEvent e)
ComponentListener
componentResized(ComponentEvent e)
componentMoved(ComponentEvent e)
componentShown(ComponentEvent e)
componentHidden(ComponentEvent e)
ContainerListener
componenentAdded(ContainerEvent e)
componenentRemoved(ContainerEvent e)
FocusListener
focusGained(FocusEvent e)
GdI
focusLost(FocusEvent e)
ItemListener
itemStateChanged(ItemEvent e)
TextListener
textValueChanged(TextEvent e)
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.27
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
10.8 Listener (Übersicht)
10.8 Listener (Übersicht)
Listener
WindowListener
Methods
windowActivatet(WindowEvent e)
windowClosed(WindowEvent e)
windowClosing(WindowEvent e)
windowDeactivatet(WindowEvent e)
windowDeiconified(WindowEvent e)
windowIconified(WindowEvent e)
windowOpened(WindowEvent e)
GdI
◆ Die Methoden der Event-classes finden Sie unter ...java.awt.event.
Grundlagen der Informatik für Ingenieure I
 Gunter Bolch, Claus-Uwe Linster, Franz-Xaver Wurm • Universität Erlangen-Nürnberg • Informatik 4, 2004
kap10_eventhandling.fm 2004-06-23 10.16
.28
Reproduktion jeder Art oder Verwendung dieser Unterlage, außer zu Lehrzwecken an der Universität Erlangen-Nürnberg, bedarf der Zustimmung des Autors.
Herunterladen