47
JME JME Java Micro Edition

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

Embed Size (px)

Citation preview

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