JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel...

47
JME JME Java Micro Edition

Transcript of JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel...

Page 1: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

JMEJME

Java Micro Edition

Page 2: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

ÍndiceÍndiceIntroducción: MidletIntroducción a la interfaz de Alto nivelIntroducción a la interfaz de Bajo nivelRMSLWUITSugerencias

Page 3: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

JME: Introducción MidletJME: Introducción MidletIntroducciónEjemploMIDletElementos

Page 4: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: IntroducciónMidlet: IntroducciónJME es Java con menos libreríasJME abarca un gran tipo de dispositivos

limitados no sólo teléfonos móviles

Page 5: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: IntroducciónMidlet: IntroducciónConfiguraciones:

◦CDC (Connected Device Configuration) Dispositivos más potentes (TV con internet,

sistemas Navegación). CVM

◦CLDC(Connected Limited Device Configuration) Dispositivos de capacidad limitada (PDA, Móviles). Utilizan KVM

Perfiles:◦MIDP (Mobile Information Device Profile)◦PDA Profile (Opcional)

Page 6: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: IntroducciónMidlet: Introducción

Page 7: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

DEMO

Page 8: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

MidletMidletDos puntos de visión

◦Clase superior jerarquía JME◦Aplicación en si

¿Cómo se ejecuta?◦No tiene Main◦Ni las configuraciones ni los perfiles poseen

Main◦Se encarga de el AMS (Application

Management System)

Page 9: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: AMSMidlet: AMS¿Que es AMS?

◦Programa pre-instalado dependiente del dispositivo

◦Dependiente de la implementación de JME del fabricante

Funcionalidad◦Gestiona la descarga de los Midlet◦Gestiona la ejecución de los Midlet◦Controla el acceso a los recursos del dispositivo

Page 10: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: Ciclo VidaMidlet: Ciclo VidaEl AMS llama a los siguientes métodos

para controlar la vida de un Midlet◦starApp◦pauseApp◦destroyApp

Genera el siguiente ciclo de vida

Page 11: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: CódigoMidlet: Código

Page 12: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: Jerarquía de clasesMidlet: Jerarquía de clasesLas clases Específicas de JME son las siguientes

Page 13: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Midlet: API y JSRMidlet: API y JSRJME esta compuesto por varias APIs o JSRs

(Java Specification Request)◦API Alto Nivel◦API Bajo Nivel◦RMS◦LWUIT◦Bluetooth◦MMAPI◦…

Page 14: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

JME: Introducción a la Interfaz de Alto NivelJME: Introducción a la Interfaz de Alto Nivel

IntroducciónElementos Alto Nivel

◦ List◦ Alert◦ TextBox◦ Form

Page 15: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Ventajas◦Facilidad de uso◦Rapidez en el desarrollo◦Portabilidad

Desventajas◦Incapacidad de manejar funciones de bajo

nivel◦Poca flexibilidad con componentes

prefabricados

GUI Alto Nivel: IntroducciónGUI Alto Nivel: Introducción

Page 16: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Mediante la clase List podemos crear listas de elementos seleccionables.

Tipos:◦ EXCLUSIVE - Sólo se puede seleccionar un elemento ◦ IMPLICIT - Se selecciona el elemento que tiene el foco ◦ MULTIPLE - Permite la selección múltiple

GUI Alto Nivel: ListGUI Alto Nivel: List

Page 17: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

GUI Alto Nivel: AlertGUI Alto Nivel: Alert Permiten mostrar una pantalla durante un tiempo o hasta

que se produzca un comando de tipo OK. Se utiliza para mostrar errores u otro tipo de mensajes al usuario.

Tipos◦ ALARM◦ CONFIRMATION◦ ERROR◦ INFO◦ WARNING

Page 18: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

La clase TextBox permite introducir y editar texto a pantalla completa. Es como un pequeño editor de textos.

Las limitaciones pueden ser alguna de los siguientes: ◦ ANY - Sin limitación ◦ EMAILADDR - Sólo una dirección de email ◦ NUMERIC - Sólo se permiten números ◦ PASSWORD - Los caracteres no serán visibles ◦ PHONENUMBER - Sólo números de teléfono ◦ URL - Sólo direcciones URL

GUI Alto Nivel: TextBoxGUI Alto Nivel: TextBox

Page 19: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Un Form es un elemento de tipo contenedor, es decir, es capaz de contener una serie de elementos visuales con los que podemos

construir interfaces más elaboradas no más vistosas.

GUI Alto Nivel: FormGUI Alto Nivel: Form

Page 20: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

JME: Introducción a la Interfaz de Bajo NivelJME: Introducción a la Interfaz de Bajo Nivel

IntroducciónCanvas

◦Elementos Importantes◦Ejemplos

Juegos◦Canvas◦Sprite

Page 21: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

GUI Bajo Nivel: IntroducciónGUI Bajo Nivel: IntroducciónTrabaja a nivel de pixel

◦Punto (0,0) Esquina superior izquierdaControl de eventos

◦Teclado◦Comandos◦Eventos pantalla táctiles

Permite dibujar primitivas GraficasEscribir textoDibujar imágenes

Page 22: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Canvas: primitivas GraficasCanvas: primitivas Graficas

Page 23: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Canvas: TextoCanvas: Texto

Page 24: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Canvas: Canvas: Elementos ImportantesElementos ImportantesEventos Teclado

◦Se controlan mediante las funciones keyPressed, keyReleased, keyRepeated

◦Teclas KEY_NUM0, KEY_NUM1, KEY_NUM2,… KEY_NUM9,

KEY_STAR y KEY_POUND◦Game Actions

getGameAction o getKeyCode UP, DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B,

GAME_C y GAME_D.

Page 25: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Canvas: Canvas: Elementos ImportantesElementos ImportantesEventos pantalla táctiles

◦Se controlan mediante las funciones pointerDragged, pointerPressed, pointerReleased

◦Comprobar si hay pantalla tacil: hasPointerEvents.

Page 26: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Canvas: Canvas: Elementos ImportantesElementos ImportantesMétodo Paint

◦Método mediante el cual pintamos todos los elementos en pantalla

◦Graphics: Objeto que nos proporciona las primitivas para pintar todos los elementos por pantalla: drawArc, drawChar, drawImage, drawLine, fillRect,

translate…◦Se llama mediante el método repaint

Page 27: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Juegos: CanvasJuegos: CanvasImplementación de todos los métodos

necesarios◦Animaciones: movimiento de las figuras por

pantalla.

◦Detección de Colisiones entre figuras del juego

◦Acciones: Diferentes eventos que se desencadenan al haber una colisión.

Page 28: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Juegos: CanvasJuegos: Canvas

DEMO

Page 29: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Juegos: SpriteJuegos: SpriteEs un elemento visual que almacena una

imagen, que contiene un único dibujo o bien varios dibujos.

Nos permite◦Detectar colisiones: Cuadrados y pixel◦Realizar animaciones indicando la secuencia de

frames◦Indicar un punto de referencia de la imagen

Page 30: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Juegos: SpriteJuegos: Sprite

DEMO

Page 31: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

JME: RMSJME: RMSIntroducciónRecordStoreRecord

Page 32: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

RMSRMSSencillo sistema de almacenamientoAlmacenamiento permanenteCompuesto por Record StoresSincronización implementadaRegistro accesible desde cualquier MIDlet

Page 33: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

RMS: RecordStoreRMS: RecordStoreColección de registrosLa plataforma mantiene su integridadBorrar MIDlet borra RecordStoreManipulación de RecordStore:

◦ openRecordStore: abre/crea un RecordStore◦ closeRecordStore: cierra un RecordStore◦ deleteRecordStore: borra un RecordStore

Page 34: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

RMS: recordsRMS: recordsIdentificados por recordID:int1er registros recordID =1Manipulación de registros:

◦ addRecord: añade un registro◦ deleteRecord: borra un registro◦ getRecord: obtiene los datos de un registro◦ setRecord: establece los datos de un registro

Page 35: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUITLWUITIntroducciónIdeas BásicasStyleThemesPaintersFichero de recursosAnimacionesTransicionesLayout Managers

Page 36: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUIT: IntroducciónLWUIT: Introducción

Librería graficaDispositivos de gama altaAltamente portableLibrería Open SourceBasado en MIDP 2.0 y CanvasNo solo es para MovilesFramework en NetBeans 7.0

Page 37: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUIT: Ideas BasicasLWUIT: Ideas Basicas

Trabajar con LWUIT◦Descargar librería https://lwuit.dev.java.net/◦Agregar librería al proyecto

Page 38: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUIT:Hola MundoLWUIT:Hola Mundo

DEMO

Page 39: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Atributos de los componentes◦Colores

Normal Enfocado

◦Fuente◦Transparencia◦Imagen◦Margen, Relleno◦Bordes◦Painter

Guardado por defecto en archivo .res

LWUIT: StyleLWUIT: Style

Page 40: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Colección de estilos (styles)Declarado en un fichero .resCreado usando:

◦Resource Editor (viene junta con la librería)◦Ant task

Se puede cambiar en tiempo de ejecución

LWUIT: ThemesLWUIT: Themes

Page 41: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUIT: ThemesLWUIT: Themes

Page 42: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Componente tiene asociado un painterNo es necesario redefinir paint()Define como pintar el fondo del elementoPersonificar aparienciaPainters Chain

◦Relacionar varios painters◦Sensación de trabajar con layers

LWUIT: PaintersLWUIT: Painters

Page 43: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Fichero binario de LWUITPuede contener:

◦Temas◦Fuentes◦Imágenes◦Animaciones◦Localización

Creación◦Ant◦Resource Editor

LWUIT: Fichero de recursosLWUIT: Fichero de recursos

Page 44: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Interfaz simple◦Animate(), si devuelve ‘True’ llama a paint()

Activación◦No basta con agregar la animación◦Tenemos que notificar que es una animación

Desactivación

LWUIT: AnimacionesLWUIT: Animaciones

Page 45: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Transiciones predefinidasExtendiblesAplicable a:

◦Forms◦Dialogos◦Menu◦Componentes

LWUIT: TransicionesLWUIT: Transiciones

Page 46: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

Agrupar elementosDivididos en regionesMediante Containers podemos anidarlos

LWUIT: Layout ManagersLWUIT: Layout Managers

Page 47: JME Java Micro Edition. Índice Introducción: Midlet Introducción a la interfaz de Alto nivel Introducción a la interfaz de Bajo nivel RMS LWUIT Sugerencias.

LWUIT: Demo Alto NivelLWUIT: Demo Alto Nivel

DEMO