Está en la página 1de 35

Java 2 Micro Edition

Interfaz de Alto Nivel.


Interfaz de Alto Nivel.

Los elementos que nos proporcionan la configuración CLDC y el


perfil MIDP son interfaces que usa componentes tales como
botones, cajas de texto, formularios, etc. Estos elementos son
implementados por cada dispositivo y la finalidad de usar las APIs
de alto nivel es su portabilidad. Al usar estos elementos, perdemos
el control del aspecto de nuestra aplicación ya que la estética de
estos componentes depende exclusivamente del dispositivo donde
se ejecute. En cambio, usando estas APIs de alto nivel ganaremos
un alto grado de portabilidad de la misma aplicación entre distintos
dispositivos. Fundamentalmente, se usan estas APIs cuando
queremos construir aplicaciones de negocios.
Estructura de Clases.
Clases genéricas.
Clase Display( public class Display)
• Maneja pantalla y dispositivos de entrada.
• Todo MIDlet poseerá, al menos un objeto Display.
• Puede incluir tantos objetos Displayable como se desee.
Clases genéricas
Clase Displayable (public abstract class Display)
• Clase abstracta: no puede ser instanciada.
• Heredan de ella Screen y Canvas.
• Incluyen métodos encargados de manejar eventos de pantalla y de
añadir y eliminar comandos.
Clases genéricas.
Constructor de la aplicación
1.- Obtención de objeto Display
* Display pantalla=Display.getDisplay(this)
* this es el objeto MIDlet ( nuestra aplicación).
2.- Creación de objetos gráficos que aparecerán en pantalla
3.- Importante
* puede haber varias pantallas con múltiples objetos Displayable cada una.
Método StartApp()
1.- Hacer referencia a la pantalla activa mediante el metodo setCurrent()
2.-Importante
* startApp ( ) se ejecuta al inicio y al volver del estado Pausa
- Los objetos se crean en el constructor , no aqui
Clases genéricas.
Clase Command ( public class Command)
1.- Mantiene información sobre un evento.
2.- Similar a un botón en Windows.
3.- Detecta un evento y ejecuta una acción
4.- Al crear un objeto Command, se deben definir tres parámetros.
a). Etiqueta : -Cadena de texto mostrada en pantalla con la que el usuario
identificará al command.
b). Tipo de objeto: - Indica una apariencia y aspectos específicos
(ver tabla)
c). Prioridad : - Útil para que el AMS establezca un orden de aparición de
los distintos Command en la pantalla.
Clases genéricas.
Tipos de objetos de un Command.
Clases genéricas.
Clase Command (public class Command)
1.- Ejemplo de creacion Command botonAceptar=new Command(“Aceptar”,Command.BACK,1);

2.- Tras crear objeto Command, hay que definir la acción que puede hacer,
implementado la interfaz CommandListener.
3.- INTERFAZ = Clase solo con metodos declarados todos como abstract.
* También puede definir constantes.
4.- Es misión del programador programar los metodos
5.- La interfaz CommandListener solo incluye un método:
* CommandAction( Command c, Displayable d)
* Implementa el código correspondiente a las acciones a ejecutar cuando
el Command c contenido en el objeto Displayable d reciba un evento.
Clases genérica.

Clase Command ( public class Command).


6.- Métodos de la clase.
Clases genéricas.
Clase Screen.
1.- Superclase de la que derivan todas las clases de la IU de alto nivel.
2.- public abstract class Screen extends Displayable
3.- En MIDP 1.0 contiene cuatro metodos que permiten obtener y definir
titulo y ticker.
* Ticker : cadena de texto que se dezplaza por la pantalla de
derecha a izquierda.
* setTitle(string s), getTitle( ),setTicker( Ticker ticker), getTicker()
4 .- En MIDP 2.0 , estos cuadro metodos han sido incluido en la clase
Displayable.
Objetos.
Clase Alert
1.- public class Alert extends Screen
2.- Pantalla de aviso al usuario
* Típicamente, dialogo de error
* Suele estar formado por un titulo, texto y, a veces, imágenes
* Dos constructores.
a). Alert ( String titulo )
b). Alert ( String tit, String txt, Image img, AlertType tipo )
* Se puede definir tiempo de vida del aviso ( 2 tipos)
a). Modal: hasta que cancela el usuario.
Alert.setTimeOut(Alert.FOREVER)
b). No Modal : durante un tiempo definido.
Alert.setTimeOut(tiempo)
Objeto (Alert).
Clase Alert
* Se puede elegir el tipo de alerta a mostrar

* Cada tipo tiene asociado un sonido


* Se puede reproducir el sonido sin tener que crear un objeto Alert
a). AlertType.CONFIRMATION.playSound(display)
Objetos
Clase List
1.- public class List extends Screen implements Choice
2.- pantalla que incluye una lista de opciones
3.- Interfaz Choice
* representa la posibilidad de modelar la eleccion entre diversas opciones
* Choice permite 3 formas de elegir opciones-> 3 tipos de List.

4.- 2 constructores:
* Lista vacia.
a). List( String titulo, int listType)
Objeto (List).
* Lista con un conjunto inicial de opciones( y de imágenes asociadas, si
se desea
a). List( String titulo, int listType, String[] eltos, Image[] imágenes)
b). Importante: eltos.length=imágenes.length
5.- Tipos de listas
a). Implicitas.
* Al seleccionar un elemento, se provoca una acción
* Útil para clásico menu de opciones
* La acción se implementa con CommandAction ( Command c,
Displayable d)
Objeto (List).
b). Exclusivas
* Solo se puede seleccionar un elemento a la vez ( RadioButton)
* La selección de opción no implica una acción.
* Hay que usar un Command para salvar la opcion seleccionada.
c). Múltiples
* se puede seleccionar todos los elementos deseados
* Análoga a exclusiva ( no implica acción; uso de Command para
guardar el contexto)
Objeto (List).
6.- Metodos de la Clase List
Objetos.
Clase TextBox.
1.- public class TextBox extends Screen
2.- Pantalla que permite editar texto en ella
3.- Hay que especificar su capacidad (no. Maximo de caracteres)
4.- Si excede la capacidad del dispositivo -> scrooll
5.- La capacidad devuelta por el constructor puede ser distinta a la
solicitada
* getMaxSize() devuelve la capacidad para un TextBox ya creado
6.- Restricciones de texto: gestionadas por la clase TextField.
Objeto (TextBox).
7.- Restricciones que podremos aplicar a un TextBox son:

8.- Constructor
TextBox(String titulo, String texto, int tamaño, int restricciones)
9.- Ejemplo : Crear un TextBox que sólo admite numeros y ademas oculta
el texto introducido.
Objeto (TextBox).
TextBox cajatexto=new TextBox(“contraseña”,””,30,
TextField.NUMERIC | TextField.PASSWORD)

10.- Métodos.
Objetos.

Clase Form.
1.- public class Form extends Screen.
2.- Contenedor de un número indeterminado de objetos.
3.- Esos objetos tienen que derivar de la clase Item
4.- Si se insertan demasiados objetos -> scroll
5.- Referencia a cada Item: mediante indices (desde 0 hasta
Form.size() -1) Un mismo Item no puede estar en mas de un Form a
la vez.
Objeto (Form).

6.- Métodos.
Objeto (Form).
7.- Gestión de eventos.
a). Similar a Command.
b). El MIDlet debe implementar ItemStateListener
* Contiene un solo metodo abstracto:
ItemStateChanged( Item item)
* Análogo a implementar CommandListener e incluir en el
MIDlet el código de CommandListener ( Command c,
Displayable d).
Objetos.
Clase StringItem.
1.- public class StringItem extends Item.
2.- Clase más simple que deriva de Item.
3.- Texto no modificable
4.- 2 constructores:
a). StringItem(String etiqueta, String texto)
b). StringItem( String etiqueta, String texto,int apariencia)
5.- Apariencia: Item.PLAIN, Item.HYPERLINK,Item.BUTTON
a). StringItem(etiqueta, texto,Item.PLAIN) = 1er constructor
Objeto (StringItem).

6.- Métodos.
Objetos.
Clase ImageItem.
1.- Public class ImageItem extends Item
2.- Inclusion de imágenes en un Form
3.- El usuario no puede interactuar con la imagen
4.- 2 constructores:
* ImageItem(String etiqueta, Image image, int layout,String textoalt)
* ImageItem(String etiqueta, Image image,int layout,String textoalt,
int apariencia)
5.- textoalt: cadena de texto alternativa a la imagen si esta excede la
capacidad de la pantalla.
6.- layout: posición de la imagen en la pantalla.
Objeto (ImageItem).
7.- Posibilidades de layout.

8.- Métodos
Objetos.
Clase TextField.
1.- public class TextField extends Item.
2.- Campo de texto insertable en un Form y editable.
3.- Diferencia con TextBox.
a). Ha de ser insertado en un formulario (TextBox es autónomo)
b). TextField deriva de Item; TextBox de Screen.
c). Eventos controlados por itemStateChanged(Item item); los del
TextBox, a través de commandAction ( Command c,Displayable d).
4.- Similitudes.
a). restricciones en las entradas ( ANSY,NUMERIC,PASSWORD,…)
5.- Constructor.
a).TextField( String etiqueta, String texto, int capacidad, int restricciones)
Objeto (TextField).

6.- Métodos.
Objetos.
Clase DateField.
1.- public class DateField extends Item.
2.- Gestión de fechas y horas en un Form.
3.- Hace uso de la clase java.util.Date
4.- Constructor:
a). DateField(String etiqueta,int Modo )
Modo: DATE,TIME,DATE_TIME
b). DateField(String etiqueta, int modo,java.util.TimeZone zonahoraria)
5.- Ejemplo:
Date fechaactual=new Date() //Crear objeto Date con fecha actual.
DateField fecha=new DateField(“Fecha”,DateField.DATE_TIME);
fecha.setDate(fechaactual); // Establecer en el objeto la fecha actual.
Objetos.
Clase ChoiceGroup.
1.- public class ChoiceGroup extends Item implements Choice
2.- Grupo de elementos seleccionables.
3.- Análogo a List, pero dentro de un Form
4.- Constructor.
a). ChoiceGroup(String etiqueta, int tipo)
b). ChoiceGroup(String etiq, int tipo, String[] elementos, Image[]
imágenes )
Objeto (ChoiceGroup).
5.- Métodos.
Objeto (ChoiceGroup).
6.- Gestion de eventos:
a). A través de itemStateChanged().
* Cuando el usuario selecciona una opción, el formulario
registra un ItemStateListener y se realiza una llamada a
ItemStateChanged().
* En ItemStateChanged(), se puede comprobar qué elemento
ha sido seleccionado y cuál no, realizando las acciones
pertinentes.
* Cada vez que se cambia una selección, se llama a
ItemStateChanged().
b). A través de CommandAction(), como con los objetos List.
Objetos.
Clase Gauge.
1.- public class Gauge extends Item
2.- Indicador de progreso mediante un gráfico de barras.
3.- Representa valores entre 0 y un valor máximo.
4.- Constructor:
* Gauge( String etiqueta, boolean interactivo, int valormax, int valorinicial)
5.- Dos tipos:
* Interactivo: el usuario puede modificar el valor actual del Gauge (
mediante botones y siempre dentro de [ 0-valormax])
* No Interactivo: la aplicación modifica el valor actual mediante
Gauge.setValor(int valor)
a). Muy util para indicar el progreso de una tarea.
Cibergrafìa
http://leo.ugr.es/J2ME/
http://wainu.ii.uned.es/canal-programacion/tutoriales/java/tutori
al-j2me.pdf
http://usuaris.tinet.cat/gporto/Programacion%20de%20juegos%2
0para%20moviles%20con%20J2ME.pdf
http://www2.elo.utfsm.cl/~iwg101/ClaseCelulares.pdf
http://ocw.uc3m.es/ingenieria-telematica/aplicaciones-moviles/m
aterial-de-clase-2/javame
http://creacionesmoviles.blogspot.mx/2011/12/introduccion-java-
me-j2me.html
http://ants.inf.um.es/~felixgm/docencia/j2me/resources/PortadaI
ndiceIntro.pdf
https://core.ac.uk/download/files/342/11228513.pdf
http://listpdf.com/ja/java-moviles-pdf.html

También podría gustarte