Heyyyyyyyyyyyyyyy

Aprende a programar microcontroladores en C... http://tecdigitaldelbajio.com/software-tarjeta.html

jueves, 18 de junio de 2009

Ejemplo #6 Como usar objetos de tipo Command



Introducción

En entradas anteriores del blog se menciono que un Form sirve para agregar componentes dentro de el, se observo en el ejemplo #2 como se agregan elementos StringItem en el Form, en el ejemplo #3 se agregaron TextField al Form, etc. Debido a lo reducido de la pantalla y para programas complejos es recomendable dividir la interfaz de usuario en varias pantallas, que se van mostrando cada que se necesiten o bien cada que se programen.
Efectivamente se divide el programa en una serie de pantallas de las cuales en un instante solo una se puede mostrar, como se observa en la figura siguiente:



La figura muestra tres objetos de la clase Form, llamados Form 1, Form 2 y Form 3, la pregunta que quizá se hagan es ¿Cómo agrego más Form’s a mi programa para después mandarlos llamar y que aparezcan cuando yo lo desee?. La respuesta es se divide en dos partes:

1. Agregar los objetos Form necesarios, en la pantalla de flujo (flow) del netBeans
2. Agregar un objeto Command para cambiar de una pantalla a otra.

Vemos a detalle estos dos pasos.

Agregando Form’s

La figura siguiente muestra donde está ubicado el elemento Form en el NetBeans

Primero se elige la vista “Flow” (flujo), después se da clic en la paleta de componentes, justo donde se indica en la figura en los elementos “Displayables”, se identifica el Form y se arrastra y suelta en la vista de flujo, con esos es suficiente para que NetBeans cree la instancia llamada form1.

Al hacer lo anterior se tienen ya dos instancias de la clase Form, una llamada form que se crea solita, cuando creamos el proyecto y la otra llamada form1 que se crea al arrastrar y soltar un elemento Form, así puedo continuar para poder crear más instancias.

Dando doble clic en los objetos form o form1 se abre la vista “Screen” donde podemos agregar y soltar elementos para crear la interfaz de usuario, el video tutorial mostrará esto en detalle, un poco más adelante. Antes hay que ver cómo podemos cambiar de un form a otro.

Agregando objetos Command

Command es una clase, las instancias de esta clase mantienen información sobre un evento, podemos pensar que son como un botón de Windows, se usan cuando el usuario quiere ejecutar una acción. La figura siguiente muestra donde están ubicados los elementos Command en NetBeans:

Existen varios tipos de objetos command, solo para fines de nuestro ejemplo (el cual veremos más abajo) solo mostraremos dos tipos de objetos Command por ahora como se observa en la tabla siguiente:

  1. Tipo: Exit
    Descripción: Petición para salir de la aplicación
  2. Tipo: Ok
    Descripción: Aceptación de una acción por parte del usuario

Quizás sin saberlo, pero en nuestros programas anteriores ya hemos usado un comando, el comando para salir (ExitCommand). Al crear el proyecto el NetBeans agrega automáticamente este comando. La figura siguiente muestra la imagen del emulador cuando se ejecuta el ejemplo #1, el programa Hola Mundo, ahí se observa claramente el comando exit.

Tal y como se menciono el objeto Command aparece en el celular como un botón para ejecutar una acción, que en este caso es la de salir del programa.

Para agregar objetos Command basta con arrastrar y soltar, la figura siguiente muestra que al form se le agrego un OkCommand y al form1 un exitCommand y un OkCommand.


Solo falta una cosa definir las acciones para cada botón, usando NetBeans las cosas se simplifican muchísimo, Basta con dar clic en el okCommand y arrastrarlo a la forma que deseamos que se muestre en la pantalla, al hacerlo se agrega automáticamente una flecha que indica la conexión, la figura siguiente muestra las acciones para los okCommands.


Se observa lo que se decía arriba, el okCommand del form se conecta al form1 y el okCommand del form1 se conecta al form. En otras palabras lo anterior significa que: “cuando de clic al botón OK del form muéstrame en la pantalla el form1”, y “cuando de clic en el botón OK del form1 muestra en pantalla el form” ¿me explique?. Quizá todo se vea más claro con un ejemplo como el siguiente.

Ejemplo #6

Realizar un programa en el teléfono celular que:

  • Muestre una imagen en la pantalla
  • Muestre la interfaz de usuario para capturar los siguientes datos de un alumno:
    o Nombre
    o Escuela
    o País
  • Muestre la interfaz de usuario para elegir una carrera (las carreras disponibles son: electrónica, sistemas computacionales y mecatrónica)

Solución

Se divide el programa deseado en tres form, uno para cada opción que se indica, se agregan los objetos Item y finalmente se agregan los objetos Commands, bueno el video siguiente muestra lo anterior para que quede bien claro lo que se menciona en este post.

Con este ejemplo se pueden observar algunas de las capacidades de NetBeans, podemos crear interfaces de usuario de una forma rapidísima y sin que nosotros agreguemos una sola línea de código, ¡¡¡NetBeans lo hace por nosotros!!!.

Pero hasta que punto es correcto lo que se hizo en este ejemplo y en los anteriores: hacer interfaces de usuario sin, siquiera una línea de código como se menciona en el párrafo anterior.

La mayoría de los libros y tutoriales que hay por la red referentes a Java micro Edition no hacen esto, ellos enseñan primero con código, te dicen que código crea un objeto, que código lo agrega al Form, que código agrega un comando etc. muestran grandes cantidades de código para realizar simples interfaces, ellos se concentran en el código primero, yo no pienso así.

Cada quien sabe que conviene y muchos dirán que mi razonamiento es erróneo, que el usuario debe aprender código primero para saber “de donde sale todo”, en mi opinión se debe hacer uso de las herramientas más potentes, que nos faciliten el trabajo, como en este caso, las herramientas visuales de NetBeans, tarde o temprano hay que aprender código eso ni duda cabe, pero si están al alcance de nuestra mano estas herramientas poderosas, si se puede hacer todo más fácil, ¿por que no usarlas para nuestro beneficio?.

Yo solo muestro otra opción de aprender a programar celulares, pero cada quien valora que es bueno, que le conviene y que no, para su aprendizaje, en este fascinante mundo de la programación.



13 comentarios:

  1. Gracias y que bueno que te gusto el blog, eres el primero que comenta en el blog, por lo que mi agradecimiento es doble¡¡¡

    ResponderEliminar
  2. Hola, ahora que ya tengo elaborado un Midlet ¿como hago para desplegarlo a un Celular?, ¿Que criterios hay que considerar para desplegarlo(tipo de celular,marca,etc)?. Sería chevere si te haces un post con toda la nota para ello. Están buenos tus temas...

    ResponderEliminar
  3. Hola Anonimo, si hay un post que indica los pasos para enviar el ejemplo #1 el de "Hola Mundo" al celular, este post, lo encuentras en el menu de archivos del blog, justo en el mes de mayo, para ser exactos fue el 27 de mayo el post se llama "como enviar el programa hola mundo a un Sony Ericsson w595" ahi se indica como hacerlo. En cuanto al celular, casi el 100% soporta Java, no se necesita mas que eso, que sea un celular que soporte Java. Una busqueda en google o en la pagina del fabricante, del modelo de tu celular, te puede indicar si soporta Java. Saludos desde Irapuato.

    ResponderEliminar
  4. Tu manual es increible!!!!

    ResponderEliminar
  5. Hey Gracias espero que todo esto me ayude a aprender del todo java ME espero que sigas poniendo cosas interesantes como estas si me gustaria ver como se crea una interfaz un poco mas avanzada.

    ResponderEliminar
  6. Hola Galicia, ojala si aprendas mas de lo que ya sabes, en lo que respecta a la interfaz un poco más avanzada, voy a tardar un poquitín, es que el objetivo es mostrar lo clásico de un curso de programación, desde el inicio hasta cosas más avanzadas como programación de juegos, pero todo es con calma, ahorita apenas voy a iniciar con los ciclos, luego siguen los arreglos de una dimensión luego de dos, luego las funciones, luego más de POO etc.. pero bueno aun así espero y estas páginas de algo te sirvan.

    saludos

    ResponderEliminar
  7. hola, yo sabia programar, pero usando codigo mas mecanicamente, he aprendido para un curso de Diseño de Interfaz de usuario, trbajo con sevlet, para conectar desde el movil a web, pero nunca habia usado el entorno grafico, siempre usaba el sun java wireless toolkit, que me permitia programar desde 0, pero esta pag esta buenisima, me hubiese encantado aprender primero de esta forma, me hubiese sido mas sensiillo, te felicito por tu blog, me es muy util, llegue aca, buscando Choice Group, y empece a revisar tu video desde 0, Muchas Gracias

    ResponderEliminar
  8. man muy excelenete tu aporte por favor sigue subiendo mas ejemplos

    ResponderEliminar
  9. excelente trabajo Doñate, algun dia yo tendre mi primer blog y sera para fines como los tuyos!

    ResponderEliminar
  10. Hola... estoy apenas empezando y estoy de verdad muy agradecido con tu blog, es maravilloso, ojala pueda contar más adelante con tu ayuda, de ser posible.

    de nuevo gracias.

    ResponderEliminar
  11. Hola te agradezco por compartir tu conocimiento, me ha sido de gran ayuda, espero podamos contar con tu ayuda.

    De corazón mil gracias por socializar el conocimiento sin egoismos.

    ResponderEliminar
  12. Un blog genuino, felicidades, solo espero que más adelante encuentre programas que manejen threads y sockets.

    Grax por tan buena pagina.

    ResponderEliminar