Realizar un programa en el teléfono celular, que pida la temperatura en grados Celsius y la convierta a grados Fahrenheit, mostrando en pantalla un mensaje del tipo “xxx.xx grados Celsius son yy.yy grados Fahrenheit”
Solución
Analizando el ejercicio me tengo que preguntar, antes de empezar a programar en el NetBeans ¿Qué pasos lógicos tenemos que hacer para realizar el programa que me piden? A continuación se enumeran y son parecidos a los del ejemplo #7:
1. Diseñar la interfaz de usuario.
2. Declarar las variables necesarias
3. Obtener los datos ingresados
4. Aplicar la formula
5. Mostrar el resultado
Veamos cada paso con más detalle.
1. Diseñar la Interfaz de usuario
Si se han seguido los ejemplos del blog ya fácilmente podemos predecir que se requiere: un objeto TextField para ingresar el dato de la temperatura en Celsius, un objeto Command para realizar la ejecución del código de conversión de Celsius a Fahrenheit, y un objeto TextField o un StringItem para mostrar el resultado, en el blog anterior mostramos el resultado en un objeto TextField ahora se va a realizar en un objeto StringItem, la imagen siguiente muestra la interfaz de usuario para el ejemplo #8:
No se observa el StringItem, que muestra el resultado, hasta que se dé clic en el botón de Convertir y se ejecute la formula aparece, el mensaje se coloca con código como se verá más adelante.
2. Declarar las variables necesarias
Se requiere una variable para el TextField que es de tipo String esta variable almacena el valor ingresado por el usuario, se requiere una variable para almacenar la conversión de la variable anterior que pasa de String a decimal y finalmente una variable para almacenar el resultado cuando se aplica la formula. La declaración de una variable con decimales se realiza así:
float grados_Far;
3. Obtener los datos ingresados por medio de la interfaz
Esto ya se vio en el post anterior, se utiliza el método getString().
4. Aplicar la formula
La fórmula para convertir de Celsius a Fahrenheit es: grados_Far = grados_Cel * 9/5 + 32
5. Mostrar el resultado
El resultado se debe mostrar en un objeto de tipo StringItem. Una rápida vista a la documentación de java para identificar como enviamos un texto al StringItem nos lleva al método setText().
Ejemplos de este método son los siguientes:
Para enviar “hola mundo” al StringItem se escribe así:
stringItem.setText(“hola mundo”);
En el ejemplo se pide el siguiente mensaje “xxx.xx grados Celsius son yy.yy grados Farenheit”, como aquí se involucran las variables usamos el operador de concatenación de cadenas de java el +, de esta forma:
Por ejemplo si se insertan el 54.16 en el TextField el mensaje final que se muestra en el celular es
54.16 grados Celsius son 129.488 grados Fahrenheit.
Video-Tutorial
Tal y como se acostumbra en el blog se puede ver la solución completa del ejemplo #8 en el siguiente video tutorial
Código
Y por si acaso fuera necesario agregamos a partir de hoy el código fuente y todos los archivos que genera NetBeans, incluyendo el archivo JAR que como se explico en un post anterior es el archivo que se envía al teléfono celular, recuerda este archivo se ubica en la carpeta dist.
Para verlo descomprimir el archivo, recuerda que se requiere el NetBeans 6.5, y se elije desde el menú: File> Open Project… buscar la carpeta Ejemplo_8 y listo.
Ahora si por fin se tienen todos los elementos para realizar un programa más completo que simplemente interfaces de usuario, veamos el ejemplo.
Ejemplo #7
Realizar un programa que calcule el área de un rectángulo.
Solución
Siempre es altamente recomendable “analizar antes de programar”, yo simplemente hare una serie de pasos como mi análisis, hay por supuesto muchas técnicas para el análisis como el pseudocódigo, diagramas de flujo, hablando de la POO el lenguaje UML etc. No me meteré con esas cuestiones, simplemente se hará, un análisis sencillo del problema y pues a programar.
Análisis
Me piden que calcule el área de un rectángulo, que hacemos si lo vemos desde el punto de vista de las matemáticas: debemos saber los datos, en este caso la base y la altura, después debo aplicar la formula: A = base * altura, hago la operación y listo calculo el área del rectángulo usando una calculadora o si es fácil lo hago mentalmente y ya.
¿Qué pasos lógicos tenemos que hacer para realizar el programa que me piden? A continuación se enumeran:
Ya se mencionó en el párrafo anterior, yo necesito de la base y la altura para poder obtener el área, entonces hago la interfaz de usuario para que se puedan ingresar los datos ¿que elemento debo colocar para realizar la interfaz de usuario?, la respuesta es sencilla objetos TextField, debo crear uno para capturar la base, otro para capturar la altura y finalmente un último para mostrar el resultado del área, haaa y pues obviamente un comando para ejecutar la acción, que es la de calcular el área.
La figura siguiente muestra la interfaz de usuario para el cálculo del área de un rectángulo:
Recuerde que NetBeans automáticamente le asigna los nombres de textField, textField1 y textField2 a cada uno de los TextField de la interfaz, esto hay que tomarlo en cuenta ya que más adelante lo necesitaremos.
2. Declarar las variables necesarias
¿Cuántas variables se necesitan? Quizá se puede pensar que dos variables, una para el TextField de la base y otro para el TextField de la altura, pero no, se requiere otras tres variables, para cambiar los tipos de datos, recuerde que el TextField me da una variable String, pero la base y la altura de un rectángulo deben ser solo números, por lo que se necesitan más variables para convertirlas de String a entero (en este caso se va a restringir el problema a puros números enteros). Bueno entonces el código para crear las dos variables de tipo String es el siguiente:
String base;
String altura;
Claro que también se puede escribir así:
String Base, altura;
Después declaro otras tres variables de tipo entero, para poder realizar las conversiones de tipo y el cálculo del área de esta forma:
int intBase;
int intAltura;
int intArea;
También se puede escribir así:
int intBase, intAltura, intArea;
Recuerde que para la creación de las variables el programador se inventa los nombres, yo me invente esos nombres, quizá alguien simplemente escribe:
int b, h, a;
Lo cual también es correcto, eso de la creación de variables depende de cada quien.
3. Obtener los datos ingresados por medio de la interfaz
Esto ya se vio en el post anterior, se utiliza el método getString(), siguiendo la asignación de nombres de instancia de Netbeans, la base es el textField y la altura es el textField1, esto se logra con el código siguiente:
base = textField.getString();
altura = textField1.getString();
Con lo anterior se captura en las variables los valores que el usuario ingreso, pero como se mencionaba esté método nos da como resultado un valor String, aun que se haya teclado un solo número, por eso se debe realizar una conversión de tipo de String a int, esto se vio en el post anterior el código para realizarlo es el siguiente:
intBase = Integer.parseInt(base);
intAltura = Integer.parseInt(altura);
4. Aplicar la formula
Ahora si ya se tienen los valores de la base y la altura de tipo entero, simplemente aplicamos la formula, el operador para multiplicar en Java es el *, el código para calcular el área es el siguiente:
intArea = intBase * intAltura;
5. Mostrar el resultado
Ahora se debe mostrar el resultado del área que está en la variable intArea, dentro de la memoria del teléfono, ¿Cómo se puede enviar ese valor hacia el tercer TextField?. Para realizarlo se usa un método, el método se llama setString(), la figura siguiente muestra el método setString de la clase TextField, tal y como se muestra en la ayuda de Java.
Este método coloca el valor que se ingresa entre paréntesis dentro del TextField, remplazando el contenido previo, por ejemplo esta sentencia envía “Hola Mundo” a un TextField3:
textField3.setString(“Hola Mundo”);
En Java un String debe colocarse ente “ “, lo que va entre paréntesis es llamado parámetro, el otro método que conocemos el getString(), no lleva parámetro, este sí.
También es posible mandar directamente el valor de una variable de tipo String como parámetro, el siguiente código envía también “Hola Mundo” al TextField:
String letras;
letras = “Hola Mundo”
textField3.setString(letras);
Siguiendo el problema del área de un rectángulo, nos encontramos que el valor del área que está en la variable intArea, es de tipo entero (int) y el método setString() requiere de un valor String, ahora el problema es el contrario del que se tenía.
La solución es bien simple, agregando el operador + se pueden “juntar” dos cadenas, comúnmente a esto se le llama concatenar, aunque aquí no son dos string los que se unirán es una cadena vacía y un entero, veamos el código, para enviar el valor de la variable intArea al TextField2 usando el método setString():
textField3.setString(“” + intArea);
El operador + concatena la cadena vacía “” con el valor que está en la variable intArea y todo eso Java lo cambia a String, y listo se despliega el valor del área en el TextField.
Código completo
Enseguida se muestra una animación donde se muestra la interfaz de usuario y todo el código visto anteriormente, se usan dos valores 9 y 7 como datos, se debe dar clic en el botón, para que se vea el código y lo que va pasando en la memoria del teléfono hasta que se muestra el resultado del área.
¿Dónde va el código?
Para terminar con este post, veamos donde debe ir el código creado para el cálculo del área de un rectángulo. Como se menciono al iniciar, la interfaz de usuario cuenta con tres TextField y un objeto tipo Command, ya se vio en un post anterior, que un objeto Command es como un botón, cuando le dé clic tiene que ejecutar el código que ya conocemos. NetBeans de una forma intuitiva me “dice” donde va a ir el código cuando se dé clic al botón, para ello se da clic derecho encima del Command, y se elige “Go To Source” tal y como se observa en la figura siguiente:
Al hacer lo anterior NetBeans nos lleva justo a donde debemos insertar el código visto anteriormente, ahí lo tecleamos, ejecutamos el proyecto y probamos en el emulador que todo salga como era de esperarse.
Existe mucho código creado por NetBeans, para nuestro ejemplo #7, por lo pronto no me interesa analizar el código que se genera, me importa más realizar ejemplos parecidos al que se vio en este post, en su momento se explicara mucho del código que crea NetBeans.
Video-Tutorial
Finalmente, si todavía quedaron dudas en cómo hacer el programa explicado en este post, presento la solución completa en el siguiente video tutorial.
En el post anterior se vieron los componentes de la clase TextField, en general todas las clases tienen los elementos siguientes: atributos, constructor y métodos. Vamos a hablar hoy más de los métodos.
También se menciono en el post anterior: “Los métodos representan acciones que puede realizar un objeto”.
Por ejemplo la imagen siguiente muestra la descripción del método getString() de la clase TextField, la imagen se obtuvo directamente de la documentación de Java, también se menciono en el post anterior como tener acceso a la documentación de java.
El método getString() obtiene el contenido del TextField como un valor String. Un String en java es una cadena de letras o números.
Es importante este método, porque con él se puede obtener la información que se va ingresando en el campo de texto. Esto nos sirve para realizar “algo” con la información tecleada, hasta el momento los ejemplos vistos en el blog, solo hacen interfaces de usuario, pero no hacen nada con la información que se puede teclear en el TextField.
En la figura siguiente se observan dos objetos TextField.
Uno de ellos me permite capturar el nombre de una persona, en este caso se capturo el nombre de “FATIMA”, NetBeans le asigna automáticamente a este objeto el nombre textField, el otro captura la edad de la persona, que es de 5, este recibe el nombre de textField1.
Ahora recordemos que hace el método getString(): “obtiene el contenido del TextField como un valor String “, con este método yo puedo saber que se ha escrito en el TextField, para saber cual dato deseo, si el de la edad o el nombre, se usa la notación punto:
nombre_del_objeto.nombre_del_metodo
¿Qué código escribo para obtener lo que se ha teclado en el TextField Nombre? La solución es la siguiente:
textField.getString()
Esa sentencia obtiene el nombre de “FATIMA”.
y ¿qué código obtiene lo que se tecleo en el textField edad? La solución es simple:
textField1.getString();
Esa sentencia obtiene el valor “5”
Bueno, pero se dice que getString() obtiene el valor del TextField, pero y ese valor ¿a dónde se va?¿o como lo puedo seguir usando?, aquí es donde entra el concepto de variable.
Variable
Una variable “es un área reservada de memoria”, yo puedo usar un área de memoria para almacenar el valor que me genera el TextField, y guardarlo ahí para después usarlo cuando yo lo necesite.
Pero como puedo crear una variable en java. Primero me debo preguntar: ¿que va almacenar la variable? ¿Letras, por ejemplo el nombre de una persona? ¿Números enteros, por ejemplo la edad de una persona? ¿Números con decimales, quizá la altura de una persona?, después de contestar esa pregunta se puede elegir de entre los tipos de datos que maneja Java.
Tipos de Datos
A continuación se muestran tres tipos de datos que maneja Java:
String. Usado para almacenar cadenas de caracteres.
int. Usado para almacenar números enteros.
float. Usado para almacenar números decimales.
Es obvio que para almacenar los valores que vienen del método getString() se deben usar variables tipo String, ¿si se ve porque, verdad?
Creación de una variable
Para crear la variable o el espacio de memoria, se debe asignar un nombre inventado por el usuario, se usa la siguiente sintaxis:
Tipo_de_datonombre_de_la_variable
Por ejemplo la siguiente sintaxis muestra la creación de una variable:
StringNombre;
La variable se llama Nombre, es de tipo String, es decir, puede almacenar una cadena de caracteres. Note que la sentencia termina con ;
¿Cómo se declaran tres variables para almacenar el nombre, el apellido, la dirección y la edad de una persona?
La respuesta es sencilla, se realiza así:
StringNombre;
StringApellido;
StringDirección;
intEdad;
Otra opción es esta:
StringNombre, Apellido, Dirección;
intEdad;
Algo importante a la hora de elegir el nombre de una variable, puede ser cualquiera, aunque conviene utilizar nombres claros y relacionados con lo que va almacenar la variable.
También hay que seguir estas reglas:
No pueden contener espacios en blanco.
Dos variables no pueden tener el mismo nombre.
Finalmente ¿cual es el código para capturar los datos de los objetos TextField que se mostraron en la parte de arriba?
Solución: recordando un poquito eran dos objetos llamados textField y TextField1, uno captura el nombre y otro captura la edad, el código completo se muestra con la siguiente animación
En la animación se muestra el código para capturar los datos de los TextField, estos datos se almacenan en la memoria del teléfono celular, despues se pueden usar para realizar otra cosa como lo veremos en otra entrada.
Nótese como Edad a pesar de que es un número se declara como String ¿Por qué? porque el método getString() obtiene el valor como un String no importa que escriba uno, siempre regresa un string, asi esta creado este método, por eso es interesante conocer como cambiar de string a entero.
Como cambiar un String a un tipo de dato int
La respuesta la encontramos en la clase Integer, puede el lector si lo desea buscar en la documentación de Java, ahí están los métodos de esta clase. Entre todos sus métodos está uno para cambiar un String a un entero se llama:
Integer.parseInt(valor_tipo_string)
Tomando de referencia la variable Edad podemos escribir el siguiente código para cambiar el String Edad a un tipo int, así:
X = Integer.parseInt(Edad);
Toma el valor de la Edad que es String y lo convierte a int, entonces después de esa sentencia la variable X debe tener el valor numérico de 5, previamente se debe declarar X de tipo entero.
Ups, pensé que hoy podría ver otro ejemplo, pero no, lo dejo para la próxima entrada, creo que por hoy ya es mucha la información que hay que digerir, la próxima entrada mostrará el ejemplo #7 donde vamos a aplicar todo lo que se vio en este post y en el anterior, además vamos a ver donde se debe ubicar el código Java, el que se ve en la animación.
Repasemos un poquito las siguientes definiciones, que en post anteriores ya vimos.
Clase: Yo simplemente diría que es una plantilla para crear objetos
Objetos: son instancias de una clase (en otras palabras: provienen de una clase o también se puede decir que se crean a partir de una clase)
Anteriormente se dijo que Java es un lenguaje orientado a objetos, en java todo, absolutamente todo proviene de una clase. Veamos una clase, con la que ya hemos trabajado:
TextField: Campo de texto, con el que, el usuario puede interactuar.
Ya se vio en el Ejemplo #3 como se crean objetos de la clase TextField. La figura siguiente muestra dos objetos de la clase TextField en el netBeans
Al arrastrar y soltar el elemento llamado TextField, NetBeans crea automáticamente el objeto, y también automáticamente le da un nombre, como se observa en la figura, el nombre del objeto 1 es llamado textField. El nombre del segundo objeto (objeto 2, en la figura) no se observa pero NetBeans le llama textField1 (dando clic en el objeto se puede ver su nombre de instancia) y si hubiera otro seria textField2 y así sucesivamente se le asignan los nombres a las instancias.
Existe entonces una clase llamada TextField (recuerde la definición de clase: una plantilla para crear objetos) y a partir de ella se crean los objetos llamados textField, textField1… textFieldn, los que sean necesarios en mi programa. Se puede hacer una analogía, se puede pensar que una clase es un plano de una casa, con un plano se pueden construir una o varias casas, así pues el plano es la clase y los objetos las casas construidas, que son diferentes puesto que yo puedo pintar de color rojo una casa y de color verde otra, así pues los objetos en Java son totalmente independientes.
La clase TextField
Pero hablemos más de la clase TextField. Esta clase ha sido creada por los desarrolladores de java. Sun Microsystems ha creado java con cientos de clases, listas para facilitarnos la vida a nosotros los programadores.
A todas estas clases diseñadas Sun las agrupa en la llamada API (Application programming Interface, Interfaz de programación de aplicaciones) cuando se instala el JDK se instala la API, cuando se instala NetBeans, automáticamente sabe la ubicación de la API, por eso nosotros simplemente arrastramos y soltamos el elemento TextField, ya esta direccionado por NetBeans.
Podemos ver la documentación de la API y observar en detalle como es la estructura de la clase TextField. En nuestro caso vamos a ver la documentación de la API desde el directorio de Sony Ericsson, después de todo se está trabajando con celulares de esta marca. La figura siguiente muestra la ruta exacta de la documentación de la API.
Esta ruta obviamente se crea cuando se instala el SonyEricsson SDK. Dando clic aquí se puede ver el post de la instalación de este kit, por si te lo perdiste.
Al dar doble clic en el archivo index.htm se muestra la figura siguiente:
La API de Java es la totalidad de las clases, todas estas clases se dividen en paquetes (packages). Un paquete agrupa clases parecidas o que se relacionan, ahorita no me interesa hablar de los paquetes, me interesa hablar solamente de la clase TextField.
Como se observa en la figura hay una sección llamada todas las clases (All Classes) justo ahí debe estar obviamente la clase TextField, podemos buscarla, esta por orden alfabético esa sección y damos clic en TextField, al hacerlo debe aparecer la documentación de esta clase como se observa en la figura siguiente:
En la documentación mostrada en la figura se observa con gran detalle la descripción de la clase TextField, ahí se indica con exactitud todos los detalles de la clase.
Estructura de la clase TextField
También en la documentación, más abajo en la página que se observa en la imagen, se pueden ver las tres grandes partes de que consta una clase:
Propiedades (FIELD)
Constructor
Métodos (METHODS)
Propiedades
Las propiedades pueden considerarse como los atributos de un objeto. La figura siguiente muestra las propiedades de la clase TextField.
Se resalta en un rectángulo la propiedad NUMERIC, si damos clic ahí nos da la descripción de esta propiedad con más detalle.
Este atributo permite insertar únicamente datos numéricos dentro del TextField. Se puede crear un objeto TextField y si se asigna la propiedad NUMERIC, solo se podrán escribir números dentro de el, si quiero escribir letras no se podrá nunca.
Constructor
Es utilizado para crear e inicializar un objeto. En este instante no nos interesan los detalles de cómo se hace usa el constructor de la clase TextField ¿Por qué?, la respuesta es sencilla, como ya se mencionó NetBeans crea automáticamente los objetos, este proceso automatizado crea el código Java para el constructor de la clase TextField, pero lo hace NetBeans yo no me preocupo por ello, cuando menos no hasta ahorita.
Metodos (Methods)
Los métodos representan acciones que puede realizar un objeto, la figura siguiente muestra algunos métodos de la clase TextField
Por ejemplo el método que se resalta en el recuadro negro, es llamado getString(). Ahí se ve la descripción (dando clic en el método se ven más detalles), este método es usado para obtener el contenido de los caracteres que se hayan escrito en el TextField.
Bueno, hasta aquí vamos a dejar este post, creo que fue mucha la información, espero me haya explicado, la próxima entrada vamos a realizar un ejemplo donde se haga uso de los atributos y métodos de la clase TextField, para ello vamos a utilizar poquito código java, si por fin vamos a usar código para poder hacer ejemplos un poquitín más complejos que simplemente crear interfaces de usuario.
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:
Tipo: Exit
Descripción: Petición para salir de la aplicación
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.
Java Micro Edition puede mostrar imágenes en la pantalla del celular por medio de objetos de la clase ImageItem. Estas instancias pueden mostrar en pantalla imágenes con los formatos que acontinuación se mencionan:
Dando clic en la palara se puede encontrar información detallada de estos formatos de imagen.
El proceso para agregar las imágenes a la pantalla del celular es similar a los ejemplos anteriores: arrastrar el elemento “ImageItem” y configurar la ruta donde se encuentran las imágenes y listo, para más facilidad, veamos el ejemplo #5 y su respectivo video tutorial.
Ejemplo #5
Realizar un programa que muestre en la pantalla del celular 3 imágenes con formatos diferentes. Las imágenes a mostrar son las siguientes:
Las imágenes se encuentran en archivos individuales llamados: img1.png, img2.jpg e img3.gif
Solución
El video tutorial siguiente muestra la solución al ejemplo #5
Las instancias de esta clase muestran una lista de elementos donde el usuario puede elegir alguno o varios de estos elementos, dependiendo como se configure el ChoiceGroup.
La figura siguiente muestra tres instancias diferentes de la clase ChoiceGroup.
1. Instancia configurada como “MULTIPLE”
2. Instancia configurada como “EXCLUSIVE”.
3. Instancia configurada como “POPUP”.
Las diferencias entre ellas son obvias, con la primera instancia puedo elegir varias opciones, con la segunda una y solo una opción y finalmente la última instancia donde se abre una lista desplegable para elegir una sola opción también.
El objetivo del siguiente ejemplo es que se aprenda a crear las instancias de los “ChoiceGroup”, vistas más arriba, todavía es la pura interfaz de usuario aún no sabemos que hacer con la selección elegida, para eso se requiere ingresar código Java, les ruego paciencia, pronto vamos a entrar de lleno a esa parte.
Ejemplo #4 Como se Usan objetos provenientes de la clase "ChoiceGroup”
Realizar la interfaz de usuario en un celular, que haga lo que se indica enseguida:
Una lista donde un alumno pueda elegir uno o más cursos. Los cursos que se ofrecen son Programación en Java, Bases de datos, Seguridad informática.
Una lista donde el alumno elija la carrera que está cursando en el Instituto. Las carreras que se ofrecen son: Ingeniería Electrónica, Ingeniería en Informática e Ingeniería en Sistemas Computacionales.
Una lista (tipo POPUP) donde el alumno pueda elegir un curso de verano. Los cursos disponibles son: Matemáticas, Programación, Métodos Numéricos.
Solución:
El video tutorial siguiente muestra la solución al ejemplo #4