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;
}
}
}

 

Pagina di Francesco Milanese (redbaron85) su Facebook   Pagina di Francesco Milanese (redbaron85) su Google Plus   Profilo di Francesco Milanese (redbaron85) su LinkedIn   Pagina di Francesco Milanese (redbaron85) su Twitter   Canale Youtube di Francesco Milanese (redbaron85ct)

Vai all'inizio della pagina