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

Guida J2ME - 24: KeyEvent: eventi da tastiera

Guida J2ME, corso base java microedition

 

Gli eventi KeyEvent sono quelli generati dalla pressione dei tasti 'classici', comuni a tutti i dispositivi MIDP, quali cellulari e palmari: i numeri da 0 a 9, l'asterisco * e il 'cancelletto' #.

 

In molti cellulari (come quello dell'emulatore WTK, per esempio) mettono poi a disposizione mini-joystick o una pulsantiera centrale: J2ME ci permette di gestire anche questi pulsanti, ma con gli ActionEvent, come vedremo nel prossimo capitolo.

 

 

Torniamo ai KeyEvent: in J2ME esistono delle costanti, definite nella classe Canvas, per identificare i pulsanti del tastierino, che trovate elencate qui di seguito:

  • KEY_NUM0, ..., KEY_NUM9 --- per i tasti-numeri da 0 a 9;
  • KEY_POUND --- identifica il tasto # ('cancelletto');
  • KEY_STAR --- identifica l'asterisco *.

 

 

Per gestire i KeyEvent bisogna implementare tre metodi della classe Canvas (per cui la vostra classe principale dovrà estendere Canvas o dovrete creare una classe che la estenda), ed è qui che entrano in gioco le costanti appena menzionate.

Ecco i tre metodi implementabili (non dovete implementarli per forza TUTTI, ma solo quelli che vi servono):

keyPressed(int keyCode)   :   void Lanciato alla pressione di un tasto.
keyReleased(int keyCode)   :   void Lanciato quando un tasto viene rilasciato.
keyRepeated(int keyCode)   :   void Lanciato quando un tasto viene tenuto premuto.

 

Per scoprire se il dispositivo attualmente in uso supporta la ripetizione dei tasti, è possibile utilizzare il metodo:

  • hasRepeatEvents()   :   boolean;

 

Il codice riportato qui di seguito definisce una MIDlet composta da due classi: "Prova" (classe principale del progetto), che istanzia un oggetto MiaCanvas e lo aggancia al Display, e MiaCanvas, che estende da Canvas e gestisce gli eventi da tastierino; cliccando col mouse sul pulsante 1 del tastierino comparirà, nella GUI del WTK, la scritta "Premuto tasto 1"; cliccando sugli altri pulsanti non accadrà nulla (è gestito solo il tasto 1 nello switch, per limitare il numero di linee di codice da ricopiare qui):

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)
{
switch (keyCode)
{
case Canvas.KEY_NUM1:
System.out.println("Premuto tasto 1");
break;
}
}
}

 

 

 

Per un elenco completo (lista) dei tutorial e videotutorial su Java, Java 2D, Java 3D e J2ME, clicca qui


 
Libri e eBook sul linguaggio di programmazione Java:
 
 
ebook PDF "Java 3D: guida di base" di Francesco Milanese
 
 
 
 
 

 

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