- Seleccionar Menú File New File.
- En la ventana New File que aparece seleccionar la categoría MIDP y tipo de fichero (File Types) MIDP Canvas (figura 23) y pulsa el botón Next.
Figure:
Creación del Canvas MIDP
|
- Asigna MiCanvas como nombre de la nueva clase MIDP (MIDP Class Name) e introduce tetris en Package si no estaba ya introducido (figura 24). Pulsa el botón Finish. Al hacerlo se habrá incluido MiCanvas como nueva clase de nuestro proyecto. Esta nueva clase aparece editada en el IDE de Netbeans (figura 25). Puede observarse que el código fuente de esta nueva clase ya contiene un constructor y otros métodos como paint(Graphics g), keyPressed(int keyCode), etc.
Figure 24:
Asignando el nombre al Canvas MIDP
|
Figure 25:
Clase MiCanvas dentro del IDE
|
- Incluye el dato miembro TetrisMidlet tetrisMidlet en la clase MiCanvas. Este dato miembro será utilizado para poder acceder al objeto TetrisMidlet donde se ha incluido el Canvas y así poder acceder a algunos métodos de la clase TetrisMidlet que necesitaremos utilizar desde MiCanvas.
- Modifica el constructor por defecto de MiCanvas para que tenga un parámetro TetrisMidlet t. El constructor utilizará esta variable para inicializar el dato miembro introducido en el paso anterior (tetrisMidlet). El constructor quedaría como sigue:
[fontfamily=courier,fontsize=\relsize{-3},frame=single]
public class MiCanvas extends Canvas implements CommandListener {
/**
* Referencia al TetrisMidlet donde se incluye este MiCanvas
*/
TetrisMidlet tetrisMidlet;
/**
* constructor
*/
public MiCanvas(TetrisMidlet t) {
try {
// Set up this canvas to listen
// to command events
setCommandListener(this);
// Add the Exit command
addCommand(new Command("Exit", Command.EXIT, 1));
tetrisMidlet = t;
} catch(Exception e) {
e.printStackTrace();
}
}
- Abre el código fuente de la clase TetrisMidlet pinchando en el IDE, la solapa TetrisMidlet y luego la solapa Source.
- Incluye el dato miembro MiCanvas miCanvas en la clase TetrisMidlet, inmediatamente antes del constructor.
- Dentro del constructor de TetrisMidlet asigna a la variable miCanvas un nuevo objeto de la clase MiCanvas:
[fontfamily=courier,fontsize=\relsize{-3},frame=single]
public class TetrisMidlet extends MIDlet implements
javax.microedition.lcdui.CommandListener {
MiCanvas miCanvas;
/**
* Creates a new instance of TetrisMidlet
*/
public TetrisMidlet() {
miCanvas = new MiCanvas(this);
}
- Modifica la acción para el comando okCommand1 introduciendo la siguiente línea de código en el método
commandAction()
de TetrisMidlet.java
, para conseguir que el flujo del programa cambie al Canvas cuando el usuario pulse el comando Ok, sea cual sea la opción seleccionada en el Choice Group.
[fontfamily=courier,fontsize=\relsize{-3},frame=single]
javax.microedition.lcdui.Display.getDisplay(this).setCurrent(miCanvas);
Figure:
Edición de la acción del comando okCommand1
|
- Ejecuta el proyecto para comprobar el funcionamiento.