Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GUA 4
Objetivo:
- Manejo bsico de JTable
Parte introductoria
Como programadores, sabemos muy bien que la presentacin de datos tabulados es
una de las tareas ms comunes que se presentan al momento de crear interfaces
grficas; desde la simple tabla que permite nicamente mostrar el resultado de una
consulta, hasta las que permiten editar directamente el contenido de cada celda,
ordenar las columnas, personalizar su apariencia, etc. La clase JTable nos permite
hacer stas tareas.
Los constructores que tiene la clase JTable son:
- JTable()
- JTable(int numRows, int numColumns)
- JTable(Object[][] rowData, Object[] columnNames)
- JTable(TableModel dm)
- JTable(TableModel dm, TableColumnModel cm)
- JTable(TableModel dm, TableColumnModel cm, ListSelectionModel sm)
- JTable(Vector rowData, Vector columnNames)
El Modelo de Tabla
Los modelos de tabla son objetos que implementan la interface TableModel; a travs
de ellos es posible personalizar mucho ms y mejor el comportamiento de los
componentes JTable, permitiendo utilizar al mximo sus potencialidades. Todas las
tablas cuentan con un modelo de tabla. Existe un modelo de tabla predeterminado que
facilita mucho el trabajo con tablas. Este modelo predeterminado es la clase
DefaultTableModel y sus constructores son:
- DefaultTableModel()
- DefaultTableModel(int numRows, int numColumns)
- DefaultTableModel(Object[][] data, Object[] columnNames)
- DefaultTableModel(Object[] columnNames, int numRows)
- DefaultTableModel(Vector columnNames, int numRows)
- DefaultTableModel(Vector data, Vector columNames)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Crear un proyecto y agregar un nuevo JFrame Form con el nombre que usted desee.
El formulario debe tener estos elementos:
Componente
jLabel1
jLabel2
jLabel3
jLabel4
jLabel5
Propiedad: text
Nuevo Registro_____________
Nombre:
Celular:
Ordenar_______________
Filtrar Registros______________
Componente
jTextField1
jTextField2
jTextField3
Componente
Button Group
Componente
Nombre de
variable
jRadioButton1 jRadioButton1
jRadioButton1 jRadioButton2
Nombre de
variable
buttonGroup1
Propiedad: text
Propiedad: buttonGroup
Por nombre
Por celular
buttonGroup1
buttonGroup1
Componente
JTable
Nombre de
variable
txtNombre
txtCel
txtFiltro
Nombre de
variable
tabla
Dentro del constructor se van a crear los encabezados de las columnas y creamos un arreglo
bidimensional para poder tener varias filas. La variable registros es de tipo Object que puede tener
cualquier tipo de variable por eso se puede asignar un String y un int. Al modelo se le asigna las filas
con que iniciar la tabla, y los nombres de columnas, luego ese modelo se le asigna a la tabla para
que pueda verse en el JTable
El botn Agregar Registro solo captura los valores de los text de nombre y de celular para agregarlos
a la nueva fila de la tabla
En el try se ponen las lneas de cdigo en las que puede surgir algn problema (excepcin) y se
detiene de ejecutar el try si lo hubo e inmediatamente se ejecutan las lneas del catch, usualmente
el try catch se usa para corregir un posible error del usuario, alertar en qu parte de todo el cdigo
ocurri un error, en este caso la lnea del catch solo captura la exception ocurrida convirtindola en
String para poder ser mostrada.
Ahora en los radiobutton se va a ordenar la tabla segn la eleccin, se crea el mtodo que hace el
ordenamiento y recibe el valor del ndice de columna con respecto a la que se ordenar y se manda
a llamar desde el evento clic de los radiobutton
Se va a agregar el cdigo en el txtFiltro, se requiere que luego que el usuario haya presionado una
tecla del teclado para la bsqueda inmediatamente se haga el filtro, para eso se ocupa el evento
KeyReleased del JTextField. El hacer el filtro con .*MiPalabraParaBuscar.* dice que el filtro se haga
con esa palabra y que no importa que tenga ms caracteres antes o despus de la palabra