Ir al contenido principal

Interceptar las teclas que se presionan!

Buenas amigos.

Primero quiero pedirles disculpas, que hace mucho no posteo nada, pero por algunos trabajos no tuve demasiado tiempo.

Hoy veremos como saber que teclas se presionan cuando tenemos en pantalla nuestro propio Canvas.

1 - Creamos nuestro MIDlet:


public class ClaseSeisMidlet extends MIDlet {

    Display pantalla;
    boolean inicio = false;

    protected void startApp() {
        if(!inicio){

            pantalla = Display.getDisplay(this);

            inicio = true;
        }
    }

    protected void pauseApp() {

    }

    protected void destroyApp(boolean unconditional) {
      
    }

}



2 - Creamos la clase MiCanvas:

public class MiCanvas extends Canvas {

protected void paint(Graphics g) {
}
}


3 - En este Canvas, dibujaremos un rectángulo, que podremos mover por toda la pantalla. Primero creamos 4 atributos de tipo entero:

int width;
int height;
int x;
int y;


4 - Creamos un constructor para inicializar las variables:

Nota: Para recordar, un Constructor es un método que se llama automáticamente al momento de crear un nuevo objeto de nuestro clase. Este debe poseer el mismo nombre que la clase.

public MiCanvas() {
// Seteamos que nuestro Canvas ocupe toda la pantalla
setFullScreenMode(true);
// Tamaño de ancho de nuestro rectangulo
width = 50;
// Tamaño de alto del rectangulo
height = 60;
// Coordenadas donde se dibujara por primera vez
x = 0;
y = 0;
}


5 - Ya tenemos las medidas, pasamos a dibujar el Rectángulo:

protected void paint(Graphics g) {
// Pintamos todo el fondo de blanco
int colorBlanco = 0xFFFFFF;
// Ponemos el color que vamos a usar
g.setColor(colorBlanco);
// Dibujamos un rectangulo del tamaño de toda la pantalla
g.fillRect(0, 0, getWidth(), getHeight());

// Color que usaremos para el rectangulo
int colorRojo = 0xFF0000;
g.setColor(colorRojo);
// Dibujamos el rectangulo
g.fillRect(x, y, width, height);
}


6 - Pongamos nuestro Canvas en pantalla, para eso volvemos a nuestra MIDlet:

public class ClaseSeisMidlet extends MIDlet {
Display pantalla;
MiCanvas canvas;
boolean inicio = false;

protected void startApp() {
if(!inicio){

pantalla = Display.getDisplay(this);

canvas = new MiCanvas();

inicio = true;
}

pantalla.setCurrent(canvas);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
}

Esto tendría que mostrar algo así:


7 - Ahora es el momento de hacer que el rectángulo pueda moverse por la pantalla, para escuchar las teclas que se presionan debemos reescribir el método: keyPressed de nuestro Canvas:

protected void keyPressed(int keyCode) {

}

8 - Dentro de este método verificaremos que tecla se presiono y haremos lo que corresponda para cada una.

protected void keyPressed(int keyCode) {
// getGameAction(keyCode) nos devuelve si se presiono una tecla de juego
// las teclas de juego son ARRIBA - ABAJO - DERECHA - IZQUIERDA - FIRE
int key = getGameAction(keyCode);

switch(key){
case UP:
y -= 5;
break;
case DOWN:
y += 5;
break;
case LEFT:
x -= 5;
break;
case RIGHT:
x += 5;
break;
}

repaint();
}


Como podrán comprobar con las teclas de dirección podrán mover el rectángulo por la pantalla.

Bueno esto ha sido todo por hoy.

Saludos...
Matias

Comentarios

  1. oie amigo,apenas me inicio en esto , tengo un problema espero puedas ayudarme, tengo el Java ME SDK 3.0 pero cuando kiero correr el programa con algun de emulador de telefono, no corre, a veces lo instalo y desisntalo y cuando kiere lo abre
    no se si puedas decirme como solucionar el problema y si no cual otro me recomiendas
    Saludos !!

    P.D
    Excelente pagina, a favoritos

    ResponderBorrar

Publicar un comentario

Entradas más populares de este blog

Introducción a LWUIT

Buenas, hoy les presentare una libreria para Java ME, que mejora notablemente la interfaz de usuario: Lightweight UI Toolkit Library, mejor dicho LWUIT. Primero para poder utilizar esta librería tendremos que descargarla. Hacer clic aqui para descargar . Una vez descargada y descomprimida, en cualquier lugar. Procedemos a crear un proyecto nuevo en nuestro NetBeans. y Ingresamos a las propiedades haciendo clic derecho sobre el proyecto: Ingresamos a Librerías y Recursos, y hacemos clic en Agregar Jar/Zip: Y buscamos en donde descomprimimos el archivo: LWUIT.jar Hacemos clic en aceptar y ya tendremos disponible la librería para trabajar en nuestro proyecto. Les dejo un pequeño código de muestra para que se fijen si les funciona todo bien: import com.sun.lwuit.Command; import com.sun.lwuit.Display; import com.sun.lwuit.Form; import com.sun.lwuit.Label; import com.sun.lwuit.animations.CommonTransitions; import com.sun.lwuit.layouts.BorderLayout; import javax.microedition.midlet.*; /**  *

GastosMax - Mi Primera Aplicacion Jave ME

Buenas hoy les presentare mi primera aplicación hecha en Java ME, que es soportada para la mayoría de los celulares del mercado. GastosMax es una simple aplicación con la que puedes llevar un simple detalle de todos tus gastos. Tendras un listado de todos tus gastos y el total de todo lo que llevas gastando. Descargar GastosMax v1.0.0 Aceptamos cualquier sugerencia y opiniones para mejorar la aplicación ;). Imágenes:

MOTODEV SDK for Java ME v3.0 (Emulador)

Para poder probar su aplicación en los diferentes celulares, tendrás que descargar el emulador de cada empresa para verificar si la aplicación funciona en cada celular. Hoy les mostrare como hacer para descargar el Emulador de Java ME de Motorola: 1 - Ingresamos a la Web de Desarrolladores para Motorola ( http://developer.motorola.com/ ) 2 - Pasamos el Mouse sobre "Platforms" y haces clic en Java ME: 3 - Ahora te dirigis a SDKs: 4 - Haces clic en el ultimo enlace: MOTODEV SDK for Java ME 5 - Clic en Download 6 - Por ultimo elegin la version para su Sistema Operativo y lo instalan. Bueno eso es todo por hoy, proximamente un tutorial para agregar los emuladores a Netbeans y como usarlos... Saludos... Maty