¿Cómo detectar el evento presionado por la tecla en forma de lwuit?
-
27-10-2019 - |
Pregunta
He escrito un programa J2ME simple con paquete lwuit. He agregado uno Form
En mi archivo de clase Midlet. Supongamos que el usuario presiona una tecla y luego quiero mostrar otra Form
. Pero no pude capturar el evento clave en mi lwuit Form
.
Este es mi código Snippt
import javax.microedition.midlet.*;
import com.sun.lwuit.*;
import com.sun.lwuit.events.*;
public class MultipleForm extends MIDlet implements ActionListener{
private Form mFirstForm, mSecondForm;
public void startApp()
{
if (mFirstForm == null)
{
Display.init(this);
mFirstForm = new Form("First Form");
Button button = new Button("Switch");
button.addActionListener(this);
mFirstForm.addComponent(button);
mSecondForm = new Form("Second Form");
Button button2 = new Button("Switch");
button2.addActionListener(this);
mSecondForm.addComponent(button2);
mFirstForm.show();
}
}
protected void keyPressed(int key)
{
System.out.println("Key Pressed");
if(key==52)
{
Form current = Display.getInstance().getCurrent();
if (current == mFirstForm)
{
mSecondForm.show();
}
else if(current==mSecondForm)
{
mFirstForm.show();
}
}
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
Solución
Para capturar la clave del evento en una lwuit Form
necesitas usar Form.addGameKeyListener(here the key, here actionListener)
Las teclas se asignan usando Canvas
me gusta Canvas.FIRE
por ejemplo.
Intenta hacer eso.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow