Ajuda ... Teclas númericas

3 respostas
L

Aonde esta o erro???
assim eu naum to conseguindo colocar as tecla numericas do jeito correto
se eu aperto o 5 escreve o 5 numa String
mais naum esta funcionando

vou mandar uma perte do codigo

public void keyPressed(int keyCode)

{

int tecla = getGameAction(keyCode);

switch(tecla){

case KEY_NUM0:

numTest = 0;

break;

case KEY_NUM1:

numTest = 1;

break;

case KEY_NUM2:

numTest = 2;

break;

case KEY_NUM3:

numTest = 3;

break;

case KEY_NUM4:

numTest = 4;

break;

case KEY_NUM5:

numTest = 5;

break;

case KEY_NUM6:

numTest = 6;

break;

case KEY_NUM7:

numTest = 7;

break;

case KEY_NUM8:

numTest = 8;

break;

case KEY_NUM9:

numTest = 9;

break;

}

repaint();

}

Obs ja tentei com Ifs tbm
e nada

Outro modo que eu tentei
esse com GameCanvas

public void paint(Graphics g) {

g.setColor(0, 0, 0);

g.fillRect(0, 0, getWidth(), getHeight());

imgJogo.setX(this.x_jog);

imgJogo.setY(this.y_jog);

imgJogo.desenha(g);

keyPressed();

g.setColor(0, 0, 255);

g.fillRect(0, 40, getWidth(), 30);

g.setColor(0, 0, 0);

g.drawString(numTest, 10, 40, 0);

}

public void keyPressed()

{

int tecla = getKeyStates();

switch(tecla){

case KEY_NUM0:

numTest = 0;

break;

case KEY_NUM1:

numTest = 1;

break;

case KEY_NUM2:

numTest = 2;

break;

case KEY_NUM3:

numTest = 3;

break;

case KEY_NUM4:

numTest = 4;

break;

case KEY_NUM5:

numTest = 5;

break;

case KEY_NUM6:

numTest = 6;

break;

case KEY_NUM7:

numTest = 7;

break;

case KEY_NUM8:

numTest = 8;

break;

case KEY_NUM9:

numTest = 9;

break;

}

repaint();

}

e nada di novo

Obrigado

e outra coisa
a Classe
Canvas não aceita Txtfield né???

3 Respostas

S

Uma coisa que pode estar acontecendo é que == não compara String e sim equals(). Não sei se tem relação, mas acho que pode ter.

L

samuelm7

intaum naum sei se estou certo
mais pelo o que entendi
as teclas é inteiro

intaum pelo que eu achei ate agora as comparações são
em
switch
case

if((tecla & KEY_NUM8)!= 0)

ate agor foi o que eu achei
mais nunca da certo

Abraços e Obrigado

Adr1

Estas a usar o Canvas ou o GameCanvas?

No primeiro exemplo estas a tentar obter o nome do “Game Action”, e como
está na API no GameAction nao fazem parte as teclas KEY_NUM0, KEY_NUM1 etc

Portable applications that need arrow key events and gaming-related events should use game actions in preference to key codes and key names. MIDP defines the following game actions: UP, DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B, GAME_C, and GAME_D.

O que podes fazer no primeiro exemplo é o seguinte:

public void keyPressed(int keyCode) {
switch(keyCode) {
case: KEY_NUM0:
numTest="0";
break;
}

isto funciona no Canvas, para poderes utilizar o metodo “keyPressed” no GameCanvas
tens de utilizar o seguinte no método contrutor:

super(false);

Isto permite activar o metodo keyPressed no GameCanvas, que é o metodo que te permite
obter os “keyCodes”.

Criado 2 de abril de 2009
Ultima resposta 5 de abr. de 2009
Respostas 3
Participantes 3