Heyyyyyyyyyyyyyyy

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

jueves, 25 de junio de 2009

Métodos, variables y tipos de datos de Java




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.


U
no 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_dato nombre_de_la_variable

Por ejemplo la siguiente sintaxis muestra la creación de una variable:

String Nombre;

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í:

String Nombre;

String Apellido;

String Dirección;

int Edad;

Otra opción es esta:

String Nombre, Apellido, Dirección;

int Edad;

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.




Clic AQUI para leer más...!

martes, 23 de junio de 2009

Análisis de la Clase TextField



Introducció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.



Clic AQUI para leer más...!

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.




Clic AQUI para leer más...!

martes, 16 de junio de 2009

Ejemplo #5 Agregar imágenes al celular usando instancias de “ImageItem”



Introducció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:

  •        PNG
  •         JPG
  •         GIF

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






Clic AQUI para leer más...!

viernes, 12 de junio de 2009

Ejemplo #4 Usos de la clase "ChoiceGroup"



Introducción

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






Clic AQUI para leer más...!

martes, 9 de junio de 2009

Ejemplo #3 Como usar un "TextField"



Introducción

Un TextField es un campo de texto, con el que un usuario puede interactuar. Con él podemos ingresar valores, para después hacer algo con esos valores.
La figura siguiente muestra dos TextField en el NetBeans, se observan desde la pantalla del diseñador visual.


En la imagen se observan un TextField para capturar el nombre de usuario (usuario) y otro para capturar la contraseña (password), estos nombres son agregados usando la propiedad Label.
Recuerde todo en Java son clases, los TextField no son la excepción, todos los objetos o instancias que se agregan provienen de la clase TextField.

La siguiente figura muestra como se ven esos TextField directamente en el emulador del teléfono celular:

En la figura se observan los dos TextField, de inicio se selecciona el TextField del usuario, ya ahí se pueden presionar las teclas de números y letras, para pasar al siguiente TextField se presionan las flechas de selección.

Ejemplo #3

Realizar la interfaz de usuario en un celular, para capturar los siguientes datos de un alumno:


· Nombre
· Apellido Paterno
· Apellido Materno
· Escuela


Solución:

El video siguiente muestra la solución al ejemplo #3:





¿Te animas con estos ejercicios?

Ejercicio #1


Realizar un programa que muestre la interfaz de usuario en un celular, para calcular el área de un triangulo.

Ejercicio #2


Realizar un programa que muestre la interfaz de usuario en un celular, para calcular el área de círculo.



Clic AQUI para leer más...!

viernes, 5 de junio de 2009

Ejemplo #2 Usos del “String Item”



Introducción

Java es un lenguaje que soporta la programación orientada a objetos (POO) este tipo de programación se basa en objetos, así que en Java todo, absolutamente todo, son objetos. Los objetos provienen de una clase o también se dice que un objeto es una instancia de una clase. Una clase se puede ver como una plantilla para crear objetos.
Veamos la figura siguiente qué es parte del programa "hola Mundo"



En la entrada anterior se mencionó lo siguiente:
  • Form. Forma o formulario, sirve para agregar componentes dentro de el. En otras palabras un Form sirve como contenedor de objetos.

Así que el formulario es un objeto y proviene de la clase Form, este objeto o instancia, si vemos en la ventana de las propiedades (Instance Name) es llamado form , NetBeans le agrega el nombre automáticamente (claro que si lo deseo puedo cambiarlo). Si se agregara otro formulario al programa, la instancia automáticamente se llama form1, y si se agrega otro form2, pero lo que quiero que vean es que existe una clase llamada Form, de la cual puedo crear el número de objetos que yo quiera (form, form1, form2, etc) por eso se dice que una clase es una plantilla para crear objetos.

Por otro lado, el Form de la figura contiene un objeto. Este objeto en java se llama stringItem proviene de la clase StringItem. como se observa, este objeto es el encargado de mostrar el mensaje “Hola Mundo”, la imagén muestra este objeto



La clase StringItem

Las instancias de esta clase simplemente sirven para mostrar una cadena no modificable de texto, es decir, una cadena de texto con la que el usuario no puede interactuar de ninguna manera, simplemente sirve para mostrar información al usuario, como se vio en el ejemplo # 1”Hola Mundo”.

Como se agregan objetos StringItem a los Form en NetBeans

Agregar objetos que son instancias de la clase StringItem, es bien fácil, usando NetBeans, simplemente se arrastran y se colocan en el Form. La figura muestra la ubicación de los String Items en la paleta de componentes en el NetBeans.


Recuerde, para agregarlos se seleccionan, se arrastran y se sueltan al formulario, y finalmente se modifican sus propiedades para escribir el texto que yo desee.

Veamos un ejemplo completo de todo esto.

Ejemplo # 2 “String Item”

Realizar un programa usando el NetBeans que muestre el siguiente mensaje en la pantalla del celular


ITESI

Grupo de Digitales

Ingeniería Electrónica

Junio de 2009

Irapuato, Gto. Mex.

Solución


El video siguiente muestra la solución al ejemplo #2


Experimente con las propiedades de los objetos "String Item", en el ejemplo solo se usan dos propiedades:

  • Label
  • Text

Pero existen más como se observa en la ventana de propiedades, practique con ellas uselas, y vea que efecto tienen en el "String Item".




Clic AQUI para leer más...!