Ir al contenido principal

Trabajando con la Clase Form

Buenas, Hoy participe de un webinar de Nokia con Maximiliano Firtman (Desarrollador Mobile desde 2000), Fernando Freytes (Nokia Argentina) y Robert (de Forum Nokia Internacional). Donde maxi nos comentaba que muchos consideraban a Java ME una plataforma muerta, porque ya hace mas de 10 años que se encuentra en el mercado, pero ¿ podemos considerar muerta a una plataforma que tiene soporte en mas de mil millones de móviles en el mercado actualmente ?


Sin dudarlo si quieres que tu aplicación se encuentre para la mayor cantidad posible de móviles, tendrás que utilizar Java ME ;)

Así que hoy veremos como usar la clase Form.

1 - Como siempre lo primero que haremos es crear nuestro MIDlet, y obtener nuestro objeto pantalla:


import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
 * @author matias
 */
public class ClaseTresMidlet extends MIDlet {
    private Display pantalla;

    public ClaseTresMidlet(){
        pantalla = Display.getDisplay(this);
    }

    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}



2 - Primero creamos un atributo de tipo Form:


private Display pantalla;
private Form formulario;


3 - ahora dentro de nuestro Constructor, crearemos nuestro formulario:


formulario = new Form("Mi Formulario");


La Clase Form tiene 2 constructores:
a) Que recibe solo el Titulo del formulario (es el que utilizaremos)
b) Ademas del titulo recibe un array de Items.

Ahora les dejare un pequeña introducción de todos los Items que podemos crear para agregar dentro del formulario:

* ChoiceGroup = Una lista igual que las listas Exclusivas y PopUp, que vimos en entradas anteriores.
* DateField = Un campo para ingresar una fecha
* Gauge = Un slider.
* ImageItem = Podemos también agregar imágenes dentro de nuestro formulario.
* StringItem = Un texto.
* TextField = Un campo para ingresar texto. Identico al TextBox pero este se puede agregar al formulario.

4 - Bueno ahora iremos creando uno de cada uno para mostrarles como se crea cada uno, acuérdate que cada elemento que crearemos, primero crearemos un atributo.


lista = new ChoiceGroup("Opciones", ChoiceGroup.EXCLUSIVE);
lista.append("Opcion 1", null);
lista.append("Opcion 2", null);
lista.append("Opcion 3", null);
lista.append("Opcion 4", null);


El primer item que hemos creado a sido una lista, como ven es idéntico al List. El ChoiceGroup recibe como parámetro el Titulo y el Tipo de Lista (Exclusive, Multiple, PopUp). Y para agregar opciones a la lista tenemos el método "append" que recibe el texto y una imagen, que como no queremos usar imágenes, dejamos el campo en null.

Ahora creamos un DateField:


fecha = new DateField("Aniversario", DateField.DATE);


El DateField recibe como parámetros:

* Titulo = String
* Tipo de Fecha, que podremos usar: DateField.DATE (Dia, Mes, Año). DateField.DATE_TIME (Dia, Mes, Año, Hora y Minutos) y DateField.TIME (Hora y minutos).

Procedemos a crear un Slider (Gauge):


volumen = new Gauge("Volumen", true, 10, 5);


Parámetros que recibe el Gauge:

* Titulo del item (String)
* Si nuestro control sera interactivo (True) o si solo se mostrara sin poder modificarse (False).
* El valor máximo permitido.
* El valor inicial, en donde se encontrara posicionado al momento de crearse.

Nos toca la hora de crear un StringItem:


texto = new StringItem("Mi texto", "USted esta completando nuestro formulario, Gracias");


Muy sencillo, nuestro StringItem recibe como parámetro un titulo y el texto que se mostrara.

Por ultimo creamos un TextField:


campo = new TextField("Nombre", "", 30, TextField.ANY);


Lo detallamos rápido ya que es idéntico al TextBox. Puedes leer nuestro post anterior si todavía no lo has leído ;).
Primero el titulo de nuestro Campo para introducir texto, el segundo parámetro es un valor predefinido, normalmente no se pone nada, es un poco molesto para el usuario tener que borrar lo que halla escrito para empezar a introducir texto. Después el total de Caracteres y por ultimo el tipo de caracteres que se permitirá. ( Mas info leer nuestro post: Comenzando con Java ME)

La imagen la dejamos, para un futuro post, así vemos como se trabaja con las imágenes en Java Me.

5 - Nuestro próximo paso sera agregar todos estos items a nuestro formulario:


formulario.append(campo);
formulario.append(lista);
formulario.append(volumen);
formulario.append(texto);
formulario.append(fecha);


Así de sencillo nuestro formulario tiene un método "append" para agregar los items.

6 - Ahora dentro de nuestro método startApp mostraremos este formulario:


pantalla.setCurrent(formulario);



Esto ha sido todo por hoy, la próxima les mostrare como poder obtener los datos ingresados por el usuario y como interactuar con ellos.

Les dejo el Código Completo:


import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

/**
 * @author matias
 */
public class ClaseTresMidlet extends MIDlet {
    private Display pantalla;
    private Form formulario;

    private ChoiceGroup lista;
    private DateField fecha;
    private Gauge volumen;
    private StringItem texto;
    private TextField campo;

    public ClaseTresMidlet(){
        pantalla = Display.getDisplay(this);

        formulario = new Form("Mi Formulario");

        lista = new ChoiceGroup("Opciones", ChoiceGroup.EXCLUSIVE);
        lista.append("Opcion 1", null);
        lista.append("Opcion 2", null);
        lista.append("Opcion 3", null);
        lista.append("Opcion 4", null);

        fecha = new DateField("Aniversario", DateField.DATE);
        volumen = new Gauge("Volumen", true, 10, 5);
        texto = new StringItem("Mi texto", "USted esta completando nuestro formulario, Gracias");
        campo = new TextField("Nombre", "", 30, TextField.ANY);

        formulario.append(campo);
        formulario.append(lista);
        formulario.append(volumen);
        formulario.append(texto);
        formulario.append(fecha);
    }

    public void startApp() {
        pantalla.setCurrent(formulario);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}



Saludos
Maty...

Comentarios

Entradas más populares de este blog

Leyendo los datos del Form

Buenas, hoy continuaremos nuestro ejemplo: Trabajando con la Clase Form . Ahora le agregamos alguna funcionalidad a nuestro formulario y mostraremos como obtener los datos que el usuario ingrese. 1 - Primero crearemos un atributo de Tipo: Command private Command guardar; 2 - Creamos nuestro Comando guardar: guardar = new Command("Guardar", Command.OK, 0); La clase Command recibe por parámetros:  * Titulo : El nombre del comando  * Tipo: El tipo de Comando podrás elegir entre: Command.BACK Command.CANCEL Command.EXIT Command.HELP Command.ITEM Command.OK Command.SCREEN Command.STOP Según tu comando deberás elegir el que mas corresponda con la acción de tu comando. 3 - Ahora tendremos que agregar nuestro comando al formulario, pero primero deberemos implementar la interface de CommandListener a nuestro MIDlet para que pueda recibir los comandos que agreguemos: public class ClaseTresMidlet extends MIDlet implements CommandListener Al im...

Hola Mundo con Java ME

Buenas... Hoy un pequeño tutorial para comenzar con NetBeans y observar como crear nuestra primer aplicación con JAVA ME. 1 - Abrimos NetBeans 2 - Vamos a Archivo -> Proyecto Nuevo (Ctrl + Mayus + N) 3 - Creamos un Proyecto de Tipo: Java ME -> Mobile Application y hacemos clic en Siguiente. 4 - Aqui definimos el Nombre de nuestro Proyecto y la ubicacion. Proyect Name (Nombre del Proyecto). Y dejamos solo la  casilla seleccionada de Set as Main Project. * Set as Main Project: El proyecto se fija como Principal * Create Hello MIDlet: Seleccionando esta casilla nos creara automáticamente un Hola Mundo, pero esta clase tendrá muchos componentes que por el momento no es necesario que lo sepan, además de tener mucho código y ya asustarlos de una xD. Hacemos clic en Siguiente. 5 - En este paso podremos elegir el Emulador con que probaremos nuestra aplicación y las configuraciones de la Aplicacion. Es recomendable seleccionar CLDC-1.1 y MIDP-2.0 ya que son los estándares que soportan...

Hola Mundo en Canvas

Buenas, después de varios días sin actualizar, disculpen fueron días de parciales y no tuve mucho tiempo para poder escribirles... Hoy les mostrare como iniciar su proyecto a bajo nivel, la forma de crear todo por nosotros mismos. 1 - Primero creamos un proyecto, y creamos un MIDlet vació. 2 - Creamos una Nueva clase de java: public class CanvasHolaMundo { } 3 - Hacemos que nuestra clase herede (extends) de Canvas: public class CanvasHolaMundo extends Canvas { } Deberán importar la librería: "import javax.microedition.lcdui.Canvas;", como logran ver solo anteponiendo la palabra "extends" y el nombre de la clase ya se logra hacer una herencia. 4 - Al heredar de Canvas esta clase nos obliga a crear un método: public class CanvasHolaMundo extends Canvas {     protected void paint(Graphics g) {            } } Este método paint recibe el objeto Graphics que nos permiti...