Zurück   Weiter

11 Eventhandling

Events werden von Eventsourcen generiert und abgefeuert. Eine Eventsource ist z.B. ein Button, welcher beim Anklicken einen Event auslöst. Ein Objekt, welches auf einen solchen Event reagiert wird Eventhandler genannt. In Java kann jedes beliebige Objekt eine Eventsource darstellen. Die Eventhandler werden über Interfaces, die EventListener definiert. Will ein EventListener einen Event erhalten, so muss er sich bei der Eventsource mit Hilfe der entsprechenden addListener-Methode anmelden. Die Klasse java.awt.Component stellt eine ganze Reihe dieser addListener-Methoden zur Verfügung:

um nur die wichtigsten zu nennen. Die Listener und Events zu den AWT-Komponenten befinden sich alle im package java.awt.event. Um das Frame aus Kapitel 9 zu schliessen verwenden wir den WindowListener. Das Frame stellt uns die Methode addWindowListener zur Verfügung, mit dem wir uns für WindowEvents anmelden können. Aus dem eigenen Frame machen wir einen WindowListener, in dem wir das Interface WindowListener implementieren. Die einzige Methode des WindowListeners, für die wir eine Funktionalität implementieren ist die Methode public void windowClosing(WindowEvent e). Der dazugehörende Event wird ausgelöst, sobald vom Betriebssystem die Meldung kommt, dass das Fenster geschlossen werden soll. Mit dem Aufruf System.exit(0) beenden wir die Virtuelle Maschine und somit auch unser Programm.

	import java.awt.Frame;
	import java.awt.event.WindowEvent;
	import java.awt.event.WindowListener;

	public class MyThirdFrame extends Frame implements WindowListener {
		public MyThirdFrame() {
			super("MySecondFrame");
			setBounds(200, 150, 400, 300);
			add(new MyFirstCanvas());
			addWindowListener(this);
			setVisible(true);
		}

		public void windowActivated(WindowEvent e) {}
		public void windowClosed(WindowEvent e) {}
		public void windowDeactivated(WindowEvent e) {}
		public void windowDeiconified(WindowEvent e) {}
		public void windowIconified(WindowEvent e) {}
		public void windowOpened(WindowEvent e) {}

		public void windowClosing(WindowEvent e) {
			System.exit(0);
		}

		public static void main(String[] argv) {
			new MyThirdFrame();
		}
	}

11.1 EventObject

11.2 EventListener

11.3 EventAdapter

11.4 Selbstdefinierte Events

11.4.1 Das EventObject

11.4.2 Der EventListener

11.4.3 Der Eventsender

11.4.4 Der EventAdapter

Created with Vim Zurück   Weiter