Tutorials
Hier finden Sie Beispiele für
Eventhandling der Buttons (Anwendung und Implementierung eines ButtonListeners)
Das folgende Tutorial bietet eine mögliche Implementierung der Eventbehandlung (≈ Reaktion auf ein bestimmtes Ereignis) der vier Knöpfe eines Nxt-Bausteins an. Wir behelfen uns dazu einem sogenanntem Listener-Objekts.
Sind vier Objekte vom Objekttyp Button
, welche wir nun zunächst einmal näher betrachten möchten. Jedem Objekt der Klasse Button
kann durch die Methode addButtonListener
ein ButtonListener
zugewiesen werden, der auf bestimmte Ereignise dieses Knopfes lauscht:
Erstellen einer Klasse, welche das Interface ButtonListener implementiert:
public class myButtonListener implements ButtonListener { @override public void buttonPressed(Button b) { // wird ausgefuehrt, wenn Button b gedrueckt wird } @override public void buttonReleased(Button b) { // wird ausgefuehrt, wenn Button b losgelassen wird } }
Zur Ausführung dieses Prozesses muss nun ein Objekt dieses Typs initialisiert werden und den entsprechenden Knöpfen zugewiesen werden. Dies geschieht mit der Methode addButtonListener
. Im folgenden Beispiel werden allen vier oben erwähnten Buttons der selbe ButtonListener
vom Typ myButtonListener zugewiesen:
Zuweisung des myButtonListener:
public static void main(String[] args) { myButtonListener mListener = new myButtonListener(); Button.ENTER.addButtonListener(mListener); Button.ESCAPE.addButtonListener(mListener); Button.LEFT.addButtonListener(mListener); Button.RIGHT.addButtonListener(mListener); // sobald einer dieser Knoepfe gedrueckt wird, // wird die entsprechende Methode innerhalb des // Listeners ausgefuehrt. // … hier geht die main-Methode weiter
Bisher werden bei jedem Knopf die Methoden buttonPressed
bzw. buttonReleased
des nun initialisierten myButtonListener-Objekts ausgeführt, sobald das ensprechende Ereignis eintritt. Zur spezialisierung der Aktionen, die die einzelnen Knöpfe auslösen sollen, wird in diesen Methoden zunächst der entsprechende Knopf identifiziert und ihm anschließend eine entsprechende Aktion zugewiesen.
Spezialisierung des eigenen ButtonListener-Objekts:
public class myButtonListener implements ButtonListener { @override public void buttonPressed(Button b) { switch(b.getId()) { case Button.ID_ENTER: enterPressedMethode(); break; case Button.ID_ESCAPE: escapePressedMethode(); break; case Button.ID_LEFT(); leftPressedMethode(); break; case Button.ID_RIGHT(); rightPressedMethode(); break; } } @override public void buttonReleased(Button b) { switch(b.getId()) { case Button.ID_ENTER: enterReleasedMethode(); break; case Button.ID_ESCAPE: escapeReleasedMethode(); break; case Button.ID_LEFT(); leftReleasedMethode(); break; case Button.ID_RIGHT(); rightReleasedMethode(); break; } } }