NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Capitolo 25: ActionEvent.

 

ActionEvent costituisce un "wrapper", un insieme di costanti che possono essere mappate su particolari tasti del dispositivo (come i tasti freccia, se presenti, o sui tasti 2,4,5,6,8, utilizzati spesso come tasti di "navigazione" o controllo nei giochi) o utilizzate per implementare i comandi del mini-joystick, se presente.

 

Tali eventi sono chiamati spesso Game Event proprio perchè si occupano dei tasti utilizzati perlopiù dai giochi in Java per cellulari.

 

 

L'API ActionEvent definisce le seguenti costanti:

  • UP;
  • DOWN;
  • LEFT;
  • RIGHT;
  • FIRE;
  • GAME_A;
  • GAME_B;
  • GAME_C;
  • GAME_D.

 

 

Per individuare il corretto codice di ActionEvent generato (utile per creare applicazioni portabili) si può utilizzare il metodo:

  • getGameAction(int keyCode)   :   int; .

 

Per conoscere invece un codice di KeyEvent associato ad un dato codice ActionEvent si può utilizzare il metodo:

  • getKeyCode(int gameAction)   :   int      .

 

Per gestire gli ActionEvent è necessario implementare gli stessi metodi di Canvas visti nel capitolo precedente per KeyEvent; di conseguenza, una classe del nostro progetto dovrà estendere Canvas.

La seguente porzione di codice identifica una MIDlet che stampa a video il codice ActionEvent del tasto del dispositivo premuto: cliccate col mouse sui vari pulsanti del 'cellulare' del WTK per leggere i risultati.

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;


public class Prova extends MIDlet
{
private Display d;
private Canvas miaCanvas;

public Prova()
{
miaCanvas = new MiaCanvas();
d = Display.getDisplay(this);
d.setCurrent(miaCanvas);
}

protected void startApp()
{
}

protected void pauseApp() { }

protected void destroyApp(boolean arg0)
{
notifyDestroyed();
}
}


class MiaCanvas extends Canvas
{
public MiaCanvas() // Costruttore
{
}

protected void paint(Graphics g) // Le classi che ereditano da Canvas devono sovrascrivere questo metodo
{
}

protected void keyPressed(int keyCode)
{
//Converto il codice di Key Event in codice di Action Event
int game=this.getGameAction(keyCode);

switch (game)
{
case Canvas.UP:
System.out.println("Codice ActionEvent del tasto: UP");
break;
case Canvas.DOWN:
System.out.println("Codice ActionEvent del tasto: DOWN");
break;
case Canvas.LEFT:
System.out.println("Codice ActionEvent del tasto: LEFT");
break;
case Canvas.RIGHT:
System.out.println("Codice ActionEvent del tasto: RIGHT");
break;
case Canvas.FIRE:
System.out.println("Codice ActionEvent del tasto: FIRE");
break;
case Canvas.GAME_A:
System.out.println("Codice ActionEvent del tasto: A");
break;
case Canvas.GAME_B:
System.out.println("Codice ActionEvent del tasto: B");
break;
case Canvas.GAME_C:
System.out.println("Codice ActionEvent del tasto: C");
break;
case Canvas.GAME_D:
System.out.println("Codice ActionEvent del tasto: D");
break;
default:
System.out.println("Non è un tasto di gioco !");
break;
}
}
}

 

 
Vai all'inizio della pagina