- CLASE List
public class List extends Screen implements Choice
La clase List nos va a permitir construir pantallas que poseen una lista de opciones. Esto nos será muy útil para crear menús de manera independiente.
La clase List implementa la interfaz Choice, para poder interactuar con las distintas opciones que se muestre en una lista (List).
Otra parte importante de toda interface gráfica, es la comunicación Aplicación-Usuario; en otras palabras, que la aplicación pueda comunicarse con el usuario en caso de ocurrir algún error, dar una advertencia o informar de algun suceso.
en J2ME se usa mucho la class Alert para encargarse de ésto.
- CLASE Alert
public class Alert extends Screen
El objeto Alert representa una pantalla de aviso. Normalmente se usa cuando queremos avisar al usuario de una situación especial como, por ejemplo, un error.
Un Alert está formado por un título, texto e imágenes si queremos. Vamos a ver como crear una pantalla de alerta. Para ello contamos con dos constructores:
Alert(String titulo)
Alert(String titulo, String textoalerta, Image imagen, AlertType tipo)
Además podemos definir el tiempo que queremos que el aviso permanezca en pantalla, diferenciando de esta manera dos tipos de Alert:
1. Modal: La pantalla de aviso permanece un tiempo indeterminado hasta que es cancelada por el usuario. Esto lo conseguimos invocando al método Alert.setTimeOut(Alert.FOREVER).
2. No Modal: La pantalla de aviso permanece un tiempo definido por nosotros. Para ello indicaremos el tiempo en el método setTimeOut(tiempo). Una vez finalizado el tiempo, la pantalla de aviso se eliminará de pantalla y aparecerá el objeto Displayable que nosotros definamos.
Podemos elegir el tipo de alerta que vamos a mostrar y cada tipo de alerta tiene asociado un sonido. Los tipos que podemos definir aparecen a continuación:
ALARM Aviso de una petición previa
CONFIRMATION Indica la aceptación de una acción
ERROR Indica que ha ocurrido un error
INFO Indica algún tipo de información
WARNING Indica que puede ocurrir algún problema
Ahora veamos un ejemplo en acción:
MIDListas.java
import javax.microedition.lcdui.Alert;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class MIDListas extends MIDlet implements CommandListener {
private Command salir, acepta;
private Display display;
private List miLista;
private Alert miAlerta;
public MIDListas() {
display = Display.getDisplay(this);
salir = new Command("Salir", Command.EXIT, 2);
acepta = new Command("Aceptar", Command.OK, 1);
miLista = new List("Opciones", List.IMPLICIT);
miLista.append("Altas", null);
miLista.append("Bajas", null);
miLista.append("Consultas", null);
miLista.append("Modificaciones", null);
miLista.append("Impresion", null);
miLista.addCommand(salir);
miLista.addCommand(salir);
miLista.addCommand(acepta);
miLista.setCommandListener(this);
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
// Establecemos el "Display" actual a nuestra pantalla
display.setCurrent(miLista);
}
public void commandAction(Command c, Displayable s) {
// TODO Auto-generated method stub
if (c == this.miLista.SELECT_COMMAND){ // Si selecciono
this.MuestraMensaje();
}
if (c == salir){
try {
this.destroyApp(false);
notifyDestroyed();
} catch (MIDletStateChangeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (c == acepta){
this.MuestraMensaje();
}
}
public void MuestraMensaje(){
miAlerta = new Alert("Opcion", miLista.getString(miLista.getSelectedIndex()), null, null);
display.setCurrent(miAlerta, miLista);
}
}
No comments:
Post a Comment