Académique Documents
Professionnel Documents
Culture Documents
V semestre
(LDC 3)
(LDC 16)
Pg. 1/4
IESTP Abancay
Unid. Didact.: Taller de Aplicaciones Mviles II
V semestre
Display.getDisplay(midlet).setCurrent(config);
} else if(opcion.equals("Mostrar")) {
Display.getDisplay(midlet).setCurrent(
new Lienzo(midlet,this,config.getColorFondo(),
config.getColorTexto(),config.getTexto())
);
}
}
}
Crear la Clase Configuracion
Esta clase se encarga de guardar los datos de configuracin, as como de mostrar en pantalla el formulario para llevar
a cabo tal configuracin.
Para ello, se aade al formulario un elemento del tipo TextField con el valor inicial de Hola Mundo, y dos elementos
ChoiceGroup de seleccin exclusiva y las opciones blanco, negro, azul, rojo y verde.
Esta clase tambin se define a s misma como CommandListener. El nico comando que debe controlar esta vez es el
comando volver.
Como en la clase Lienzo ser necesario obtener los datos de la configuracin deseada por el usuario, se han definido
funciones que obtengan los datos de los Item del formulario (lneas subrayadas).
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
public class Configuracion extends Form implements CommandListener {
private TextField texto=
new TextField("Texto","Hola mundo",15,TextField.ANY);
private String opciones[]={"blanco","negro","azul","rojo","verde"};
private ChoiceGroup colorFG=
new ChoiceGroup("Color
texto",ChoiceGroup.EXCLUSIVE,opciones,null);
private ChoiceGroup colorBG=
new ChoiceGroup("Color
fondo",ChoiceGroup.EXCLUSIVE,opciones,null);
private MIDlet midlet;
private MenuPrincipal menuprincipal;
public Configuracion(MIDlet midlet,MenuPrincipal menuprincipal) {
super("Formulario de configuracin");
append(colorFG);
append(colorBG);
append(texto);
addCommand(new Command("Volver",Command.BACK,1));
setCommandListener(this);
this.midlet=midlet;
this.menuprincipal=menuprincipal;
}
public String getTexto() {
return texto.getString();
}
public int getColorTexto() {
return getColor(colorFG);
}
public int getColorFondo() {
return getColor(colorBG);
}
private int getColor(ChoiceGroup choice) {
String color=choice.getString(choice.getSelectedIndex());
if(color.equals("blanco")) {
return (255*256+255)*256+255;
Docente: Ing. Rmulo PEDRAZA RUIZ
Pg. 2/4
IESTP Abancay
Unid. Didact.: Taller de Aplicaciones Mviles II
V semestre
} else if(color.equals("negro")) {
return 0;
} else if(color.equals("azul")) {
return 255;
} else if(color.equals("rojo")) {
return 255*256*256;
} else { //verde
return 255*256;
}
}
public void commandAction(Command command, Displayable displayable) {
if(command.getCommandType()==Command.BACK) {
Display.getDisplay(midlet).setCurrent(menuprincipal);
}
}
}
Crear la Clase Lienzo
Es la clase derivada de Canvas, la cual se encarga nicamente de dibujar la pantalla a partir de los datos de
configuracin que se le pasan por parmetros en el constructor (LDC 09). Observar que en el constructor se carga una
imagen de mapa de bits (lneas subrayadas), por lo que habr que crear una y guardarla como prueba.png en el
directorio res del proyecto.
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
public class Lienzo extends Canvas implements CommandListener {
private int colorFondo,colorTexto;
private String texto;
private Image imagen;
private MIDlet midlet;
private MenuPrincipal menuPrincipal;
public Lienzo(MIDlet midlet,
MenuPrincipal menuPrincipal,
int colorFondo,
int colorTexto,
String texto) {
this.colorFondo=colorFondo;
this.colorTexto=colorTexto;
this.texto=texto;
try {
imagen=Image.createImage("/prueba.png");
} catch(Exception e) {
System.out.println("Error cargando la imagen: "+e.getMessage());
}
this.midlet=midlet;
this.menuPrincipal=menuPrincipal;
addCommand(new Command("Volver",Command.BACK,1));
setCommandListener(this);
}
(LDC 09)
(LDCs 27 a 34)
(LDC 24)
Pg. 3/4
IESTP Abancay
Unid. Didact.: Taller de Aplicaciones Mviles II
V semestre
}
public void commandAction(Command command, Displayable displayable) {
if(command.getCommandType()==Command.BACK) {
Display.getDisplay(midlet).setCurrent(menuPrincipal);
}
}
}
Para poder salir de la imagen y volver al men inicial, es necesario crear un comando del tipo BACK en el constructor
(LDC 24). Al igual que las otras clases, Lienzo se establece a s misma como CommandListener, y trata el evento del
comanda en su funcin commandAction (LINEAS DE CDIGO SOMBREADAS).
La funcin principal e imprescindible de Lienzo, como toda clase Canvas es la funcin paint() (LDC 27 a 34), donde se
puede observar cmo a partir de un objeto Graphics, de manera sencilla rellena el fondo de un color, dibuja un texto de
otro color, y dibuja el mapa de bits cargado en el constructor en el centro de la pantalla, utilizando los mtodos
getWidth() y getHeight() de ste, ya que a priori no se sabe la resolucin de la pantalla, ya que puede variar segn el
dispositivo.
Conclusiones:
Pg. 4/4