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) {}
}
¿Fue útil?

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
scroll top