Vous êtes sur la page 1sur 4

UNIVERSIDAD DE EL SALVADOR

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE


DEPARTAMENTO DE INGENIERA Y ARQUITECTURA
PROGRAMACIN II
DOCENTE: ING. ROBERTO COLN
INSTRUCTOR: BR. KEVIN MANUEL OSORIO

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

Se crea el modelo que se asignara para trabajar en la tabla despus

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