Este documento presenta un taller sobre el uso de tablas en aplicaciones Java ME. El objetivo es crear una aplicación que utilice controles como Form, TextBox y TableItem. Se explica cómo diseñar la interfaz de usuario, cambiar los nombres y propiedades de los controles, e importar y codificar funciones para seleccionar celdas de la tabla, establecer y obtener valores, y actualizar el modelo de tabla. El documento guía al lector paso a paso en el desarrollo de la aplicación.
1. Taller: Uso de Tablas
Autor: Ing. Orlando Barcia Ayala, www.orlandobarcia.com
Fecha: Marzo del 2012
Objetivos:
Realizar una aplicación que utilice Form, TextBox , TableItem
Ejecutar la aplicación en un dispositivo celular real.
Actividad:
Realizar una aplicación JME que utilice Tablas
Contenido:
Proyecto: Uso de Tablas
Midlet: Tablas
Utilice Visual MidLet en la solución. Tener presente que el nombre del proyecto y el MidLet, queda
a criterio del programador.
Controles a utilizar:
Form, TableItem, Command (2).
TextBox, Command(1). Adicional Ticker
Flujo del programa
3. Cambio de los nombres de los controles.
Realizar el cambio de los nombres de controles o variables que se utilizarán en la codificación de
programa. (clic derecho en el control, rename).
Control Nombre de variable (opcional)
Form frmprincipal
TableItem
TextBox
Cambio de las propiedades de cada control.
Realizar el cambio de las propiedades, acordes al contenido que debería mostrar la aplicación.
Tales como label, Text, Title, constraint, asignación de Ticker y otros.
Importaciones a digitar en el código (antes de public class)
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import org.netbeans.microedition.lcdui.SimpleTableModel;
import org.netbeans.microedition.lcdui.TableItem;
4. Código a añadir dentro de la clase (MidLet)- preferible antes de la última llave
Realizar la digitación del código siguiente. Debe tener presente los nombres de variables que
Usted utiliza al diseñar la aplicación. En este momento se consideran tal como han sido
arrastrados al componente. Usted debe actualizar por los nombres de variables creados.
PASO A:
En el itemCommand
Antes the switchDisplayable método donde dice: // write pre-action user code
here:
if (textBox != null) {
// Get position of the cursor in the table.
int row = tableItem.getSelectedCellRow();
int column = tableItem.getSelectedCellColumn() ;
// Get value from the table model
Object value = simpleTableModel.getValue(column,row);
// Set textBox string value
if (value != null)
textBox.setString(value.toString());
else
textBox.setString("");
}
PASO B:
En el command del TextBox
Antes the switchDisplayable metodo donde dice: // write pre-action user code
here:
int row = tableItem.getSelectedCellRow();
int column = tableItem.getSelectedCellColumn();
// Set new value to the table model
simpleTableModel.setValue(column, row,
textBox.getString());
// Repaint table model on the screen device
simpleTableModel.fireTableModelChanged();
Análisis utilidad
int row = tableItem.getSelectedCellRow();
int column = tableItem.getSelectedCellColumn() ;
Object value = simpleTableModel.getValue(column,row);
if (value != null)
textBox.setString(value.toString());
simpleTableModel.setValue(column, row, textBox.getString());
5. simpleTableModel.fireTableModelChanged();
Evaluación del aprendizaje.(Mayeútica)
1 ¿Cómo realizó el flujo de los controles?
2 ¿Qué hizo para añadir un Ticker?
3 ¿Que realizó para cambiar las propiedades de los controles?
4 ¿Cómo procedió para cambiar los nombres de los controles ( variables) ?
5 ¿Por qué considera necesario cambiar el nombre de los controles - variables?
6 ¿Qué ocurre con el código dado por el docente, en caso de que no cambió los nombres de
los controles?
7 ¿Qué realiza el código .setString("") ?
8 ¿Qué pasa si ubico el código fuera de la clase?
9 ¿Qué ocurre si no ubico las importaciones indicadas?
10 ¿Qué ocurre si cambio el nombre de las controles (variables ) en la codificación?
11 ¿Qué ocurre si cambio el nombre del MIDLet por otro diferente al indicado en el taller?
12 ¿Qué realiza el código?
13 ¿Qué es tableItem.getSelectedCellRow();un atributo o método. Para qué servirá?
14 ¿Qué considera que realiza ?
Referencias Bibliográfica.