View
12
Download
4
Category
Preview:
Citation preview
JMEJME
Java Micro Edition
ÍndiceÍndiceIntroducción: MidletIntroducción a la interfaz de Alto nivelIntroducción a la interfaz de Bajo nivelRMSLWUITSugerencias
JME: Introducción MidletJME: Introducción MidletIntroducciónEjemploMIDletElementos
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
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)
Midlet: IntroducciónMidlet: Introducción
DEMO
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)
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
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
Midlet: CódigoMidlet: Código
Midlet: Jerarquía de clasesMidlet: Jerarquía de clasesLas clases Específicas de JME son las siguientes
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◦…
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
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
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
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
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
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
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
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
Canvas: primitivas GraficasCanvas: primitivas Graficas
Canvas: TextoCanvas: Texto
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.
Canvas: Canvas: Elementos ImportantesElementos ImportantesEventos pantalla táctiles
◦Se controlan mediante las funciones pointerDragged, pointerPressed, pointerReleased
◦Comprobar si hay pantalla tacil: hasPointerEvents.
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
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.
Juegos: CanvasJuegos: Canvas
DEMO
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
Juegos: SpriteJuegos: Sprite
DEMO
JME: RMSJME: RMSIntroducciónRecordStoreRecord
RMSRMSSencillo sistema de almacenamientoAlmacenamiento permanenteCompuesto por Record StoresSincronización implementadaRegistro accesible desde cualquier MIDlet
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
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
LWUITLWUITIntroducciónIdeas BásicasStyleThemesPaintersFichero de recursosAnimacionesTransicionesLayout Managers
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
LWUIT: Ideas BasicasLWUIT: Ideas Basicas
Trabajar con LWUIT◦Descargar librería https://lwuit.dev.java.net/◦Agregar librería al proyecto
LWUIT:Hola MundoLWUIT:Hola Mundo
DEMO
Atributos de los componentes◦Colores
Normal Enfocado
◦Fuente◦Transparencia◦Imagen◦Margen, Relleno◦Bordes◦Painter
Guardado por defecto en archivo .res
LWUIT: StyleLWUIT: Style
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
LWUIT: ThemesLWUIT: Themes
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
Fichero binario de LWUITPuede contener:
◦Temas◦Fuentes◦Imágenes◦Animaciones◦Localización
Creación◦Ant◦Resource Editor
LWUIT: Fichero de recursosLWUIT: Fichero de recursos
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
Transiciones predefinidasExtendiblesAplicable a:
◦Forms◦Dialogos◦Menu◦Componentes
LWUIT: TransicionesLWUIT: Transiciones
Agrupar elementosDivididos en regionesMediante Containers podemos anidarlos
LWUIT: Layout ManagersLWUIT: Layout Managers
LWUIT: Demo Alto NivelLWUIT: Demo Alto Nivel
DEMO
Recommended