16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

Event-Handl<strong>in</strong>g mit Hilfe lokaler Klasse<br />

Für die Ereignisbehandlung wer<strong>de</strong>n lokale Klassen herangezogen. Im JDK 1.0<br />

wur<strong>de</strong>n Klassen nur auf Paketen <strong>de</strong>f<strong>in</strong>iert, e<strong>in</strong>e Schachtelung war nicht möglich. Im<br />

JDK 1.1 kann <strong>in</strong>nerhalb bestehen<strong>de</strong>r Klassen e<strong>in</strong>e neue Klasse <strong>de</strong>f<strong>in</strong>iert wer<strong>de</strong>n<br />

(Konzept <strong>de</strong>r „Inner Classes“), die nur <strong>in</strong>nerhalb <strong>de</strong>r bestehen<strong>de</strong>n Klasse sichtbar ist.<br />

Objekt<strong>in</strong>stanzen <strong>de</strong>r <strong>in</strong>neren Klasse können nur aus <strong>de</strong>r umfassen<strong>de</strong>n Klasse heraus<br />

erzeugt wer<strong>de</strong>n. Allerd<strong>in</strong>gs kann die <strong>in</strong>nere Klasse auf die Instanzvariablen <strong>de</strong>r<br />

äußeren Klasse zugreifen.<br />

Mit Hilfe lokaler Klassen wer<strong>de</strong>n die benötigten EventListener implementiert. Dazu<br />

wird <strong>in</strong> <strong>de</strong>m GUI-Objekt, das e<strong>in</strong>en Event-Handler benötigt, e<strong>in</strong>e lokale Klasse<br />

<strong>de</strong>f<strong>in</strong>iert (und aus e<strong>in</strong>er passen<strong>de</strong>n AdapterKlasse abgeleitet).<br />

E<strong>in</strong> e<strong>in</strong>führen<strong>de</strong>s Bsp.: Event-Handl<strong>in</strong>g nach <strong>de</strong>r Bearbeitung von Schaltflächen <strong>de</strong>s<br />

AWT <strong>in</strong> Version 1.0 und 1.1<br />

// E<strong>in</strong>fangen von Klicks auf Schaltflaechen<br />

import java.awt.*;<br />

import java.awt.event.*;<br />

import java.applet.*;<br />

public class SchalterAppl extends Applet<br />

{<br />

Button sch1 = new Button("Schaltflaeche 1");<br />

Button sch2 = new Button("Schaltflaeche 2");<br />

public void <strong>in</strong>it()<br />

{<br />

sch1.addActionListener(new Sch1());<br />

sch2.addActionListener(new Sch2());<br />

add(sch1);<br />

add(sch2);<br />

}<br />

class Sch1 implements ActionListener<br />

{<br />

public void actionPerformed(ActionEvent e)<br />

{<br />

getAppletContext().showStatus("Schaltflaeche 1");<br />

}<br />

}<br />

class Sch2 implements ActionListener<br />

{<br />

public void actionPerformed(ActionEvent e)<br />

{<br />

getAppletContext().showStatus("Schaltflaeche 2");<br />

}<br />

}<br />

/*<br />

public boolean action(Event e, Object welcheAktion)<br />

{<br />

if (e.target.equals(sch1))<br />

getAppletContext().showStatus("Schaltflaeche 1");<br />

else if (e.target.equals(sch2))<br />

getAppletContext().showStatus("Schaltflaeche 2");<br />

else<br />

return super.action(e,welcheAktion);<br />

return true;<br />

}<br />

350

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!