Java2 MicroEdition II

download Java2 MicroEdition II

of 11

Transcript of Java2 MicroEdition II

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    1

    Gestin de Comandos Los comandos proporcionan al usuario la capacidad de interactuar con el MIDlet seleccionando funcionalidades. Los comandos son modelados por la clase Command, que proporciona el siguiente constructor:

    El primer parmetro del constructor es la etiqueta del comando. El tipo del comando (commandType) se especifica a travs de una

    serie de constantes: o OK Verifica que se puede comenzar una accin o CANCEL Cancela la accin o STOP Detiene la accin o EXIT Sale del MIDlet o BACK Enva al usuario a la pantalla anterior o HELP Solicita la ayuda o ITEM Un comando especifico de la aplicacin que es relativo

    a un determinado item de la pantalla actual o SCREEN Un comando especifico de la aplicacin que es

    relativo a la pantalla actual El ltimo parmetro indica la prioridad del comando. Esta prioridad es

    importante porque determina cmo se muestran los comandos al usuario, que puede ser a travs de un botn del dispositivo (prioridad alta) o un men (prioridad baja). Por ejemplo, el valor 1 es asignado con los comandos de mxima prioridad.

    Mtodos de la clase Command:

    Mtodos Descripcin

    public int getCommandType() Devuelve el tipo del Command. public String getLabel() Devuelve la etiqueta del Command.

    public String getLongLabel() Devuelve la etiqueta larga del Command. public int getPriority() Devuelve la prioridad del Command.

    En cualquier MIDlet que incluyamos Commands, tendremos adems que implementar la interfaz CommandListener. En este caso, la interfaz CommandListener slo incluye un mtodo:

    Command(String label, int commandType, int priority)

    commandAction(Command c, Displayable d)

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    2

    en donde indicaremos la accin que queremos que se realice cuando se produzca un evento en el Command c que se encuentra en el objeto Displayable d. Para agregar el Listener utilizaremos: public void setCommandListener(CommandListener l)

    La clase Screen La clase Screen es la superclase de todas las clases que conforman la interfaz de usuario de alto nivel:

    public abstract class Screen extends Displayable En la especificacin MIDP 1.0 esta clase contena cuatro mtodos que le permitan definir y obtener el ttulo y el ticker: setTitle(String s), getTitle(), setTicker(Ticket ticker) y getTicker(). El ticker es una cadena de texto que se desplaza por la pantalla de derecha a izquierda. En la especificacin MIDP 2.0 que es la ms reciente en este momento, estos cuatro mtodos han sido incluidos en la clase Displayable. Describamos brevemente las clases que heredan den Screen:

    Form: Sirve para contenedor de tem (componentes del interfaz grfico)

    Alert: Muestra un mensaje (y opcionalmente una imagen) al usuario. Es como un pop-up o un MessageDialog.

    List: Muestra una lista de elementos sobre los que se puede hacer una seleccin.

    TextBox: Proporciona un editor de texto.

    La clase Form

    public class Form extends Screen Un formulario (clase Form) es un componente que acta como contenedor de un nmero indeterminado de objetos. Todos los objetos que puede contener un formulario derivan de la clase Item. Para referirnos a los Items o componentes de un formulario usaremos unos ndices, siendo 0 el ndice del primer Item y Form.size()-1 el del ltimo. El mtodo size() nos devuelve el nmero de Items que contiene un formulario. Esta clase Item contiene las siguientes subclases:

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    3

    ImageItem: Clase que permite colocar imgenes en el interfaz grfico.

    StringItem: tem para colocar una cadena en el interfaz. TextField: Un campo de entrada de texto de una sola lnea DateField: Una versin de TextField especializada en la

    introduccin de fechas. ChoiceGroup: Un componente que proporciona un conjunto de

    elecciones exclusivas o no, que puede funcionar como una coleccin de checkboxes o de radio buttons.

    Gauge: Un tem para ver el progreso de una operacin o para seleccionar un valor de un rango continuo de valores.

    Mtodos de la clase Form

    Mtodos Descripcin

    int append(Image imagen) Aade una imagen al formulario.

    int append(Item item) Aade un Item al formulario.

    int append(String texto)

    Aade un String al formulario.

    void delete(int num)

    Elimina el Item que ocupa lo posicin num.

    void deleteAll() Elimina todos los Items del formulario.

    Item get(int num)

    Devuelve el Item que se encuentra en la posicin num.

    int getHeight() Devuelve la altura en pixels del rea disponible (sin realizar scroll) para los Items.

    int getWidth()

    Devuelve la anchura en pixels del rea disponible (sin realizar scroll) para los Items.

    void insert(int num, Item item)

    Inserta un Item justo antes del que ocupa la posicin num.

    void set(int num, Item item)

    Reemplaza el Item que ocupa la posicin num.

    void setItemStateListener(ItemStateLis tener listener)

    Establece un listener que captura los eventos que produzcan cualquier Item del formulario.

    int size() Devuelve el nmero de Items del formulario.

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    4

    Subclases de Item

    Item es la superclase usada por todos los componentes que pueden formar parte de un Form. En el siguiente grfico podemos ver la jerarqua de tems: Todos los tem tiene un campo label (etiqueta), que es una cadena que va con el tem. Podemos establecer el valor de la etiqueta y obtener el valor asignado, mediante los siguientes mtodos:

    public void setLabel(String label) public String getLabel()

    La Clase StringItem

    Simplemente es una cadena no modificable de texto. Para construir un StringItem haremos uso de cualquiera de sus dos constructores: donde:

    etiqueta es la etiqueta del Item. texto es el texto que contiene el Item apariencia es la apariencia del texto: Item.PLAIN,

    Item.HYPERLINK, Item.BUTTON.

    La clase ImageItem La clase ImageItem es similar a la clase StringItem pero est diseada para mostrar imgenes en lugar de texto. El constructor de esta clase es el siguiente: ImageItem(String label, Image img, int layout, String altText)

    StringItem(String etiqueta, String texto) StringItem(String etiqueta, String texto, int apariencia)

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    5

    El layout de la imagen es determinado por constantes definidas en la clase ImageItem:

    LAYOUT_DEFAULT Posiciona la imagen usando lo especificado por defecto en el form.

    LAYOUT_LEFT Alinea la imagen en el borde izquierdo del form

    LAYOUT_RIGHT Alinea la imagen en el borde derecho del form

    LAYOUT_CENTER Centra la imagen horizontalmente LAYOUT_NEWLINE_BEFORE Empieza una nueva lnea para

    la imagen LAYOUT_NEWLINE_AFTER Empieza una nueva lnea de

    tems despus de la imagen Mtodos de la clase ImagenItem:

    La clase Gauge La clase Gauge implementa un indicador de progresos a travs de un grfico de barras. El componente Gauge representa un valor entero que va desde 0 hasta un valor mximo que definimos al crearlo:

    Para poder trabajar con este tem tenemos dos mtodos con los que podremos leer y modificar el valor actual, esto mtodos son:

    public int getValue(); public void setValue(int value);

    Tambin nos va a permitir obtener el valor mximo que puede alcanzar y modificarlo. Adems de ver si es interactivo o no con los siguientes mtodos:

    public void setMaxValue(int maxValue); public int getMaxValue(); public boolean isInteractive();

    Gauge(String etiqueta, boolean interactivo, int valormax, int valorinicial)

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    6

    La clase TetxtField Un TextField es un campo de texto que podemos insertar en un formulario y dnde podemos editar texto. Para crear un TextField slo hay que invocar al constructor con los siguientes parmetros:

    Las restricciones (constraints) nos especifican el tipo de dato que se puede introducir en el TextField, y son las siguientes:

    TextField.ANY: Permite cualquier conjunto de carcteres TextField.EMAILADDR: Limita al usuario a introducir una

    direccin de correo electrnico vlida. TextField.NUMERIC: Limita al usuario a introducir valores

    enteros. El primer carcter puede ser un signo menos y el resto son dgitos.

    TextField.PHONENUMBER: Especifica que el campo debe contener un nmero de telfono. EL formato vlido pueda cambiar de un dispositivo a otro o de una red a otra.

    TextField.URL: El valor introducido debe ser una URL. TextField.PASSWORD: El valor a introducir es una clave. Esta

    restriccin puede ser usada en conjuncin con TextField.ANY o TextField.NUMERIC. Cuando se est introduciendo un valor de este tipo aparecen asteriscos por pantalla.

    Mtodos de la clase TextField:

    TextField(String etiqueta, String texto, int capacidad, int restricciones)

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    7

    La clase DateField La clase DateField presenta una interfaz intuitiva para ingresar fechas y horas. El constructor de esta clase es el siguiente: donde modo puede ser: DateField.TIME: Se introduce la hora (horas y minutos) DateField.DATE: Se introduce la fecha (da, mes y ao) DateField.DATE_TIME: Se introduce la fecha y la hora Tambin podemos realizar la invocacin al constructor de la siguiente manera:

    La clase ChoiceGroup Esta clase nos muestra una lista de elementos donde podremos elegir uno o varios de estos elementos. Los constructores de esta clase son: Mtodos de la clase ChoiceGroup

    DateField (String label, int mode)

    DateField(String etiqueta, int modo, java.util.TimeZone zonahoraria)

    public ChoiceGroup(String label, int choiceType) public ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements)

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    8

    El segundo parmetros de ambos constructores es, el tipo de lista y puede tomar los siguientes valores: ChoiceGroup.EXCLUSIVE: Es una lista donde slo se puede

    seleccionar un elemento a la vez. Se muestra como una coleccin de radio buttons.

    ChoiceGroup.MULTIPLE: Es una lista donde se pueden seleccionar varios elementos a la vez. Se muestra como un conjunto de check boxes.

    Tratamiento de cambios de estados de los Item

    El manejo de eventos de un formulario se hace de manera muy similar al de los Commands. Es necesario implementar la interfaz ItemStateListener que contiene un solo mtodo abstracto itemStateChanged(Item item). Cuando realizamos algn tipo de accin en un Item de un formulario, ejecutamos el cdigo asociado a ese Item que definamos en el mtodo itemStateChanged(Item item) de igual forma que hacamos con el mtodo commandAction(Command c, Displayable d) cuando manejamos Commands.

    La 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 situacin especial como, por ejemplo, un error. Un Alert est formado por un ttulo, texto e imgenes si queremos. Esta clase cuenta con dos constructores: Alert(String titulo) Alert(String titulo, String textoalerta, Image imagen, AlertType tipo) Modo de visualizacin:

    Modal: Esto lo conseguimos invocando al mtodo Alert.setTimeOut(Alert.FOREVER).

    No Modal: Para ello indicaremos el tiempo en el mtodo setTimeOut(tiempo).

    Tipos de Alert: ALARM: Aviso de una peticin previa CONFIRMATION: Indica la aceptacin de una accin ERROR: Indica que ha ocurrido un error INFO: Indica algn tipo de informacin WARNING: Indica que puede ocurrir algn problema

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    9

    Cada tipo de alerta tiene asociado un sonido, posible ejecutar el sonido sin tener que crear un objeto Alert, invocando al mtodo playSound(Display) de la clase AlertType, por ejemplo: AlertType.CONFIRMATION.playSound(display) La clase List

    public class List extends Screen implements Choice La clase List nos va a permitir construir pantallas que poseen una lista de opciones. Existen dos constructores que nos permiten construir listas: el primero de ellos nos crea una lista vaca y el segundo nos proporciona una lista con un conjunto inicial de opciones y de imgenes asociadas si queremos:

    List(String titulo, int listType) List(String titulo, int listType, String[] elementos, Image[] imagenes)

    Tipos de Lista:

    EXCLUSIVE: Lista en la que un slo elemento puede ser seleccionado a la vez.

    IMPLICIT: Lista en la que la seleccin de un elemento provoca un evento.

    MULTIPLE: Lista en la que cualquier nmero de elementos pueden ser seleccionados al mismo tiempo.

    Mtodos:

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    10

    La clase TextBox

    public class TextBox extends Screen

    Una TextBox es una pantalla que nos permite editar texto en ella, ms de una lnea y fuera de un Form, a diferencia del item TextField. El constructor para esta clase es: public TextBox(String title, String text, int maxSize, int constraints) Tipos de constraints:

    ANY: Permite la insercin de cualquier carcter. CONSTRAINT_MASK: Se usa cundo necesitamos determinar el

    valor actual de las restricciones EMAILADDR: Permite caracteres vlidos para direcciones de correo

    electrnico. NUMERIC: Permite slo nmeros. PASSWORD: Oculta los caracteres introducidos mediante una

    mscara para proporcionar privacidad. PHONENUMBER: Permite caracteres vlidos slo para nmeros de

    telfono URL: Permite caracteres vlidos slo para direcciones URL.

    Mtodos:

    Ejercicios

    Hacer un formulario de logueo, si las credenciales son correctas me llevar a otro formulario que contenga un texto Bienvenido al Sistema, caso contrario mostrar una alerta. Considerar una alerta para validar que se ingresen todos los datos en el formulario login.

  • Desarrollo de Aplicaciones Mviles UPAO

    Ing. Carlos Alberto Jara Garca

    11

    Hacer una calculadora simple, que nos pida dos nmeros y una operacin y nos muestre el resultado.

    Haz un Form que pida los datos de un alumno: Nombre, Apellidos, Fecha de Nacimiento, DNI, email, Sexo, Aficiones, telfono, un nombre de usuario (login) y una contrasea. Una vez recogidos los datos, crear un TextBox que los muestre todos. Para mostrar los posibles fallos introducidos se debe utilizar Alert (por ejemplo, que un campo no est relleno).

    Hacer un sistema de mens de un juego (con List), donde podamos elegir, la dificultad de 1 a 10 con un Gauge, el nombre del jugador, empezar el juego, y lista de mejores puntuaciones. Para mostrar los posibles fallos introducidos se debe utilizar Alert (por ejemplo, empezar el juego sin haber dado un nombre).

    Hacer un sistema de mens de un programa (con List), donde podamos elegir: insertar, borrar, modificar, enviar y listar (ambas opciones tienes que estar tambin disponibles en los comandos). En insertar debemos poder insertar un alumno (ejercicio anterior), en borrar nos pide un DNI de un alumno y debemos de borrarlo, en listar tenemos que mostrar una lista con todos los alumnos, en enviar, nos tiene que permitir introducir una direccin de email, y en modificar nos debe permitir modificar un alumno (igual que en insertar pero con los campos inicializados). Usar una clase para almacenar cada alumno y un vector para almacenarlos todos.