“Programando con J2ME” Rogelio Ferreira Escutia. 2 MIDlet mínimo.

Slides:



Advertisements
Presentaciones similares
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Construcción de un juego con HTML 5 Rogelio Ferreira Escutia.
Programación de Dispositivos Móviles Estructura de un programa en J2ME Rogelio Ferreira Escutia.
Sección 4 Gastos Generales
Fernando Alonso Blázquez Graphic User Interfaces 25 de Marzo de 2004.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME RMS Ing. Ronald Criollo.
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN
DESARROLLO DE SOLUCIONES EMPRESARIALES MOVILES USANDO TECNOLOGIA SUN APLICACIONES MOVILES CON J2ME Ing. Ronald Criollo.
Curso de Java Capitulo 7: Continuación Poo Profesor:
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
POLIMORFISMO UNIDAD 4.
Lenguaje de programación Java
Programación “Conducida por eventos” Event-driven programming
Instalación, Manipulación y uso.
Calculadora en vb.net Ing. Vanessa Borjas.
1.2 Sintaxis del lenguaje Java.
Algoritmo y Estructura de Datos I I Facultad de Ingeniería y Arquitectura Ing. Juan José Montero Román. Sesión 12 - Introducción.
Jesús Arellano. La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma.
Aplicaciones GUI en Java
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Tema 10: Interfaces Antonio J. Sierra.
Nuevas Aplicaciones en Equipos Móviles Pablo Roncagliolo B. Valparaíso – Chile 2006.
“Android – Hola Mundo” Rogelio Ferreira Escutia. 2 Creación del Proyecto.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Patrones de Comportamiento: Patrón de Diseño Observer
Ingeniero Anyelo Quintero
Patrón Observador Un patrón de diseño es una descripción de clases y objetos comunicándose entre si adaptada para resolver un problema de diseño general.
DESARROLLO DE APLICACIONES MOVILES I. Temas – CheckBox – Spinner.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
OBJETOS DISTRIBUIDOS E INVOCACIÓN REMOTA ING. MARISCAL.
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE INTERFASES.
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (Seminaris de CASO) Autors Introducción a J2ME Bruno Rodríguez Rodríguez.
“Android – Manejo de Eventos”
Tecnología java para dispositivos con recursos limitados
Curso de Java La tecnología Java
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO. (GUI GRAPHICAL.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
QUÈ ES VISUAL BASIC ES UN LENGUAJE DE PROGRAMACIÒN QUE SE HA DISEÑADO PARA FACILITAR EL DESARROLLO DE APLICACIONES EN EL ENTORNO GRÀFICO (GUI GRAPHICAL.
J2ME M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Java.
Manejo de Eventos. Lo básico para manejo de eventos Cuando se realiza una interacción con el programa, se envía un evento. Es fundamental su comprensión.
QUIMESTRE II PARCIAL I.
Java for Mobile Devices M.C. Juan Carlos Olivares Rojas Department of Computer and System Instituto Tecnológico de Morelia
Programación de Dispositivos Móviles “Conceptos de J2ME” Rogelio Ferreira Escutia.
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
Programación Orientada a Objetos
EI, Profesor Ramón Castro Liceaga Agosto de 2005 UNIVERSIDAD LATINA (UNILA) PROGRAMACION ORIENTADA A OBJETOS EN JAVA (Optativa) PROGRAMACION DE APPLETS.
:: Prof. Yeniffer Peña Programación I Interface Gráfica de Usuario Presentación.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
COMANDOS PRINCIPALES DE VISUAL BASIC 6.0
Ing. Vanessa Borjas. Entorno gráfico En un entorno gráfico se tiende a que cada uno de los programas esté compuesto por un formulario, aunque no es una.
Elementos y tipos de sistemas operativos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
J2ME Java 2 Platform, Micro Edition (J2ME): Esta versión de Java está enfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades.
Sistemas Operativos Universidad Politécnica Territorial de Mérida
M.C. Meliza Contreras González.  Se le llama interfaz gráfica al conjunto de componentes gráficos(ventanas, botones, combos, listas, cajas de dialogo,
1 Programación “Conducida por eventos” Event-driven programming Agustín J. González ELO329/ELO330.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Cómo empezar Java. ¡Cómo se divide la plataforma de desarrollo de Java?  Edición estándar (JSE)  Edición empresarial (JEE)  Edición de dispositivos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
Introducción a la Ingeniería de Sistemas Taller Computación Móvil Ing. Yassir Barceló
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Transcripción de la presentación:

“Programando con J2ME” Rogelio Ferreira Escutia

2 MIDlet mínimo

3 Primer MIDlet Desarrollo de juegos con J2ME, Manuel Jesús Prieto Marín, Primera Edición, Alfaomega, México abril 2005  Todos los MIDlets deben tener una clase principal que herede de la clase “javax.microedition.midlet", contenida en el API MIDP estándar.  Esta clase define varios métodos, de los cuales los mínimos son los siguientes: – startApp() - Lanza el MIDlet – pauseApp() - Para el MIDlet – DestroyApp() - Destruye el MIDlet

4 MIDlet mínimo  La estuctura mínima para un programa J2ME queda de la siguiente manera: import javax.microedition.midlet.*; public class hola extends MIDlet { public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }

5 Desplegar Información

6 Objeto Display (1)  Para hacer el primer programa que imprima un mensaje en pantalla requerimos varias cosas mas.  Primero deberemos agregar la clase “import javax.microedition.lcdui”  El cual contiene los métodos para el control de la pantalla del dispositivo y los elementos que permiten al usuario interactuar con la aplicación.  Nunca se debe crear un objeto Display, obtendremos una referencia al objeto Display que nos proporciona el propio entorno. Desarrollo de juegos con J2ME, Manuel Jesús Prieto Marín, Primera Edición, Alfaomega, México abril 2005

7  El manejo de la pantalla se hace dentro del constructor del MIDlet y se usa para crear la interfaz de usuario en el método startApp().  Para lo anterior se requiere de una instancia del Display por cada MIDlet que se esté ejecutando en el dispositivo en cada momento Display.getDisplay(this).setCurrent(pantalla); Objeto Display (2) Desarrollo de juegos con J2ME, Manuel Jesús Prieto Marín, Primera Edición, Alfaomega, México abril 2005

8  Mientras que del objeto “Display” sólo hay una instancia, del objeto “Screen” pueden existir varias.  El objeto “Screen” es un componente de la GUI (Graphical User Interface) genérico que sirve como base para otros componentes.  Estos objetos representan una pantalla entera de información. Sólo se puede mostrar una pantalla a la vez.  La mayoría de los MIDlets usan subclases de la clase Screen, como Form, TextBox o List. Clase Screen Desarrollo de juegos con J2ME, Manuel Jesús Prieto Marín, Primera Edición, Alfaomega, México abril 2005

9  Una clase similar a Screen es la clase Canvas, que pertenece al mismo paquete.  Los objetos Canvas son usados para realizar operaciones gráficas directamete sobre la pantalla, como puede ser pintar líneas o imágenes.  No se puede mostrar un objeto Canvas y un objeto Screen a la vez, pero se pueden alternar en la misma aplicación. Clase Canvas Desarrollo de juegos con J2ME, Manuel Jesús Prieto Marín, Primera Edición, Alfaomega, México abril 2005

10 Java a tope J2ME, Universidad de Malaga

11  Continuando con nuestro programa que imprime un mensaje en pantalla, utilizaremos un objeto que contendrá nuestra pantalla (que en nuestro caso se llama “pantalla”), por lo cual declaramos el objeto de tipo “Form” el cual contendrá el mensaje que deseamos imprimir: Form (1) private Form pantalla;

12  Ahora dentro del constructor de nuestra clase principal inicializamos el objeto “pantalla” que previamente habiamos declarado y le agregamos un texto que se convertirá en el título de nuestra ventana: Form (2) pantalla = new Form("Titulo - Hola Mundo");

13  Por medio del método “append” le agregamos un mensaje a nuestra pantalla utilizando el objeto de tipo Form que se llama “pantalla” y que previamente declaramos e inicializamos: Form (3) pantalla.append(new StringItem(null, "Hola Mundo desde un celular"));

14  Dentro de nuestro método “starApp” asignamos a nuestro objeto “Display” el objeto que nos definirá nuesrta primera pantalla de arranque: startApp() Display.getDisplay(this).setCurrent(pantalla);

15  El código completo queda de la siguiente manera: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class hola extends MIDlet { private Form pantalla; public hola() { pantalla = new Form("Titulo - Hola Mundo"); pantalla.append(new StringItem(null, "Hola Mundo desde un celular")); } public void startApp() { Display.getDisplay(this).setCurrent(pantalla); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }

16  El programa corriendo en el simulador que trae el Java Wireless Toolkit.

17 Manejo de Eventos

18  El programa anterior no tiene interacción con el usuario, es decir, no detecta ninguna señal de entrada por parte del usuario hacia el dispositivo, ya que sólo imprime un mensaje.  Ni siquiera tiene un botón de “salir”, por lo que lo implementaremos en el siguiente programa. Primero, dentro de nuestra clase principal implementaremos el “CommandListener” que nos permitirá “escuchar” los eventos que se generen. CommandListener public class hola extends MIDlet implements CommandListener

19  Ahora requerimos implementar el método “commandAction” que se encargará de recibir los eventos que se generen y procesar las acciones necesarias. commandAction public void commandAction(Command c, Displayable s)

20  Dentro del “commandAction” se invoca a “notifyDestroy” que se encargará de enviar un mensaje al sistema de que se ha terminado el programa y que proceda con el borrado de los objetos utilizados (recordar que no existe el “Garbagge Collector” como en el J2SE): notifyDestroy() notifyDestroyed();

21  Agregamos a nuestra pantalla un botón “Salir” que se encargará de generar la acción de “salir” de la aplicación: Botones pantalla.addCommand(new Command("Salir", Command.EXIT, 0));

22  Por último, falta asignar quién será el encargado de monitorear los eventos que se generen y para ello seleccionamos la pantalla que utilizamos y le asignamos con “setCommandListener” el manejo del evento: Asignar el manejador del evento pantalla.setCommandListener(this);

23  El código completo queda de la siguiente manera: import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class hola extends MIDlet implements CommandListener { private Form pantalla; public hola() { pantalla = new Form("Titulo - Hola Mundo"); pantalla.append(new StringItem(null, "Hola Mundo desde un celular")); pantalla.addCommand(new Command("Salir", Command.EXIT, 0)); pantalla.setCommandListener(this); } public void startApp() { Display.getDisplay(this).setCurrent(pantalla); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { notifyDestroyed(); }

24  El programa corriendo en el simulador que trae el Java Wireless Toolkit.

25 Entrada de Datos

26  Por medio de “TextField” podemos capturar información que introduce el usuario por medio del teclado. TextField

27  Por medio del siguiente ejemplo podemos observar el funcionamiento de TextField.  Se utilizarán 2 pantallas, en la primera se preguntará el nombre de una persona, y por medio del botón “continuar” pasará a la segunda pantalla en donde se imprimirá un mensaje y el nombre que se capturó en la primer pantalla. También en esta segunda pantalla agregaremos un botón de “salir” para terminar con el programa. Ejemplo

28  Primero declaramos los objetos que vamos a utilizar: Un objeto de tipo Display (pantalla). 2 pantallas (Form) para desplegar información. Un campo TextField para entrada de datos. 2 botones. Declaración de objetos private Display pantalla; private Form pantalla_preguntar, pantalla_imprimir; TextField nombre; private Command continuar, salir;

29  En el constructor inicializamos el objeto Display: Objeto Display pantalla = Display.getDisplay(this);

30  En el constructor inicializamos la primer pantalla, preguntamos el nombre, inicializamos el botón “continuar” y ambos objetos los agregamos a nuestra pantalla, y por último asignamos el manejo de eventos: Primer pantalla pantalla_preguntar = new Form("Pantalla 1 > Preguntar Nombre"); nombre = new TextField("Escribe tu nombre:","",20,TextField.ANY); pantalla_preguntar.append(nombre); continuar = new Command ("Continuar",Command.OK,1); pantalla_preguntar.addCommand(continuar); pantalla_preguntar.setCommandListener(this);

31  Iguamente en el constructor inicializamos la segunda pantalla, inicializamos el botón “salir” y lo agregamos a nuestra pantalla, y por último asignamos el manejo de eventos: Segunda pantalla pantalla_imprimir = new Form("Pantalla 2 > Imprimir mensaje"); salir = new Command("Salir",Command.EXIT,1); pantalla_imprimir.addCommand(salir); pantalla_imprimir.setCommandListener(this);

32  En el commandAction verificamos cual botón se oprimió (continuar ó salir).  En caso de oprimir “continuar” generamos un texto que agregamos a nuestra segunda pantalla y nos cambiamos a esta pantalla. En caso de oprimir “salir” mandamos una notificación de terminación del programa. Manejo de Eventos public void commandAction(Command c, Displayable s) { if (c == continuar) { pantalla_imprimir.append(new StringItem(null, "hola "+nombre.getString()+"!!!")); pantalla.setCurrent(pantalla_imprimir); } if (c == salir) { destroyApp(false); notifyDestroyed(); }

33 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class nombre extends MIDlet implements CommandListener { private Display pantalla; private Form pantalla_preguntar, pantalla_imprimir; TextField nombre; private Command continuar, salir; public nombre() { pantalla = Display.getDisplay(this); pantalla_preguntar = new Form("Pantalla 1 > Preguntar Nombre"); nombre = new TextField("Escribe tu nombre:","",20,TextField.ANY); pantalla_preguntar.append(nombre); continuar = new Command ("Continuar",Command.OK,1); pantalla_preguntar.addCommand(continuar); pantalla_preguntar.setCommandListener(this); pantalla_imprimir = new Form("Pantalla 2 > Imprimir mensaje"); salir = new Command("Salir",Command.EXIT,1); pantalla_imprimir.addCommand(salir); pantalla_imprimir.setCommandListener(this); }

34 public void startApp() { pantalla.setCurrent(pantalla_preguntar); } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void commandAction(Command c, Displayable s) { if (c == continuar) { pantalla_imprimir.append(new StringItem(null, "hola "+nombre.getString()+"!!!")); pantalla.setCurrent(pantalla_imprimir); } if (c == salir) { destroyApp(false); notifyDestroyed(); }

35 Estructuras de Control

Rogelio Ferreira Escutia Instituto Tecnológico de Morelia Departamento de Sistemas y Computación Página Web: Twitter: Facebook: