Documente Academic
Documente Profesional
Documente Cultură
Introduccion
Un Ejemplo Sencillo
Ejemplo 1.SimpleTable1.java
El Modelo de Tabla
DefaultTableModel
Ejemplo 2.SimpleTable2.java
Ejemplo 3.SimpleTable3.java
AbstractTableModel
Ejemplo 4.SimpleTable4.java
API JTable
Campos
Constructores
Mtodos
API DefaultTableModel
Campos
Constructores
Mtodos
API AbstractTableModel
Campos
Constructores
Mtodos
Comentarios Finales
Referencias
Introduccion
Con la llegada de Swing, como parte de la JFC(Java Foundation Classes), la construccin de
Interfaces Grficas de Usuario(GUI) recibi un excelente conjunto de componentes
(aproximadamente 40)que la mejoraron: desde el siempre utilizado JButton, hasta el flexible
JEditorPane o el JDesktopPane, pasando por los JTree y los JTable; sin dejar de
mencionar a los JFilechooser y los JDialog, todos ellos, y los componentes restantes,
permiten la creacin de aplicaciones con interfaces grficas ms intuitivas y completas.
Swing es el resultado de la unin de esfuerzos entre Netscape, con su Internet Foundation Classes,
y SUN. Swing es slo una parte de la JFC, muchos cometemos el error de creer que Swing y
JFC son lo mismo. La JFC contiene tambin otros elementos, estos son algunos de ellos:
Cortar y Pegar
Elementos de Accesibilidad
Java 2D
Impresin
De todos los componentes que forman Swing, quiz los JTree y las JTable, sean los
componentes con APIs ms extensas (la clase JTable tiene ms de 100 mtodos), y quiza
tambin los ms complejos.
Afortunadamente esa complejidad les permite ser tambin de los componentes Swing ms
personalizables y potentes; al igual que en la mayora de las otras clases Swing no es necesario
conocer todos sus mtodos para comenzar a utilizarlos y darles una utilidad prctica.
Como programadores, sabemos muy bien que la presentacion 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.
Todas las tareas antes descritas, y muchas otras, son posibles de realizar utilizando la clase
JTable; por supuesto, mientras ms complejo sea el requerimiento a cubrir, se requerir en igual
medida utilizar ms mtodos o recursos de la clase.
Este primer artculo:
Muestra como crear una JTable sencilla para la visualizacion de datos.
Explica que es un modelo de tabla
Muestra como crear una JTable con DefaultTableModel como modelo de tabla
Muestra como crear una JTable con AbstractTableModel como modelo de tabla
Describe la API JTable
Describe la API DefaultTableModel
Describe la API AbstractTableModel
Un Ejemplo Sencillo
El ttulo de este artculo es: JTable con ejemplos; asi que comenzaremos creando una tabla
sencilla. Esta tabla nicamente mostrar un conjunto de datos definidos desde su constructor,
para ello primero daremos una vistazo rpido a los constructores que proporciona esta clase; puedes
ver al final del artculo con detalle ms informacin.
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)
Para este primer ejemplo utilizaremos el 3er. constructor de la lista anterior. El cual nos permite
construir una tabla a partir de dos parmetros; el primero de ellos: rowData es un array
bidimencional de objetos que representa el contenido de la tabla, y el segundo: columnNames
representa los nombres de cada columna, contenidos tambin en un array que por lo general es un
array de String's.
Nuestro primer ejemplo tendra las siguientes columnas:
String[] columnNames =
{"Nombre", "Apellido", "Pasatiempo", "Aos de Practica",
"Soltero(a)"};
Ejemplo 1. SimpleTable1.java
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
//manejamos la salida
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
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 , aunque en el ejemplo 1 no se haya especificado,
existe uno por omisin
El siguiente grfico intenta mostrar como cada componente JTable obtiene siempre sus datos
desde un modelo de tabla .
DefaultTableModel
Esta clase tiene el siguiente diagrama de herencia:
java.lang.Object
|
+-javax.swing.table.AbstractTableModel
|
+-javax.swing.table.DefautTableModel
Nuevamente, antes de comenzar a utilizar esta clase, veremos cuales son los constructores con que
cuenta:
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)
Utilizaremos el constructor que nos permite crear un DefaultTableModel, a partir de los datos
con que ya contamos del ejemplo anterior:
Object[][] data = {
{"Mary", "Campione",
"Esquiar", new Integer(5), new Boolean(false)},
{"Lhucas", "Huml",
"Patinar", new Integer(3), new Boolean(true)},
{"Kathya", "Walrath",
"Escalar", new Integer(2), new Boolean(false)},
{"Marcus", "Andrews",
"Correr", new Integer(7), new Boolean(true)},
{"Angela", "Lalth",
"Nadar", new Integer(4), new Boolean(false)}
};
Despues de haber creado el modelo de tabla, dtm en el ejemplo , se crea la tabla con el
constructor correspondiente:
final JTable table = new JTable(dtm);
Una vez hecho esto, cualquier modificacin que se realice sobre el modelo de tabla se reflejar
directamente en la tabla. As, podemos agregar una columna:
String[] newColumn= {"Flan",
"Pastel",
"Helado",
"Barquillo"
"Manzana" };
dtm.addColumn("Postre",newColumn);
una fila:
Object[] newRow={"Pepe", "Grillo",
"Tenis", new Integer(5), new Boolean(false), "Pera"};
dtm.addRow(newRow);
o modificar una celda en especial, en este ejemplo la celda ubicada en la columna 1, fila 1:
dtm.setValueAt("Catherine", 1, 1);
Puedes revisar los mtodos que proporciona la clase DefaultTableModel para conocer que
otras cosas puedes realizar con ella.
A continuacin se presenta el listado completo del cdigo que muestra el uso del modelo de tabla
DefaultTableModel :
Ejemplo 2.SimpleTable2.java
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
dtm.addRow(newRow);
//manejamos la salida
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
Ejemplo 3.SimpleTable3.java
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
//manejamos la salida
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
Antes de cualquier operacion sobre el modelo de tabla, debemos crear la tabla que lo utilizar:
final JTable table = new JTable(dtm);
AbstractTableModel
Con esta clase es posible implementar, de una manera ms completa y eficiente, los mtodos
necesarios para crear un modelo de tabla.
Para crear un modelo de tabla personalizado, lo primero que necesitamos es extender la clase
AbstractTableModel.
class MyTableModel extends AbstractTableModel {
.....
}
Con la implementacin de los mtodos anteriores, las celdas de la tabla NO sern editables y NO
se podrn modificar los valores de cada una de ellas.
Si deseamos tener un mecanismo para modificar los valores de las celdas de la tabla, tenemos
que sobrescribir el mtodo setValueAt de la clase AbstractTableModel:
class MyTableModel extends AbstractTableModel {
public int getRowCount(){
...
}
Y, si la modificacin de los valores de las celdas, se hace directamente sobre ellas, necesitamos
indicar a nuestro modelo de tabla que las celdas de la tabla sern editables, esto se hace
sobrescribiendo el mtodo isCellEditable:
class MyTableModel extends AbstractTableModel {
public int getRowCount(){
...
}
Ms adelante puedes revisar los mtodos restantes que proporciona la clase AbstractTableModel
Ya lo nico que hara falta sera agregar los nombres de las columnas de nuestra tabla y definir su
contenido inicial:
class MyTableModel extends AbstractTableModel {
JTable invoca un mtodo del modelo de tabla para determinar el editor/renderer predeterminado
que utilizar para mostrar el valor de cada celda. Por ejemplo para celdas con valores booleanos
utilizar check box's; este mtodo es: getColumnClass, y tambin es recomendable
implementarlo:
class MyTableModel extends AbstractTableModel {
Ahora, despues de saber cuales son los mtodos que se necesitan implementar y sobrescribir de la
clase AbstractTableModel para crear nuestro propio modelo de tabla; veremos un ejemplo
que nos muestra ya completa la definicion de la clase:
class MyTableModel extends AbstractTableModel {
final String[] columnNames = {"Nombre",
"Apellido",
"Pasatiempo",
"Aos de Practica",
"Soltero(a)"};
final Object[][] data = {
{"Mary", "Campione",
"Esquiar", new Integer(5), new Boolean(false)},
{"Lhucas", "Huml",
"Patinar", new Integer(3), new Boolean(true)},
{"Kathya", "Walrath",
"Escalar", new Integer(2), new Boolean(false)},
{"Marcus", "Andrews",
"Correr", new Integer(7), new Boolean(true)},
{"Angela", "Lalth",
"Nadar", new Integer(4), new Boolean(false)}
};
/*
* Este metodo sirve para determinar el editor predeterminado
* para cada columna de celdas
*/
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*
* No tienes que implementar este mtodo a menos que
* las celdas de tu tabla sean Editables
*/
public boolean isCellEditable(int row, int col) {
return true;
}
/*
* No tienes que implementar este mtodo a menos que
* los datos de tu tabla cambien
*/
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
Si estas utilizando una versin del JDK anterior a la 1.3, debes hacer las siguentes modificaciones al
mtodo setValueAt, ya que antes de esta version era necesario crear manualmente un Integer
a partir del valor recibido, ya que de otra manera, el valor recibido se seguira convirtiendo a un
String, a partir de la Ver. 1.3, la conversion a Intenger es automtica.
//Version del metodo setValuAt para JDK's anteriores a la Ver.1.3
public void setValueAt(Object value, int row, int col) {
El siguiente codigo, muestra la utilizacin de la clase MyTableModel; en este ejemplo, sta clase
aparece en la aplicacion principal como una clase secundaria:
Ejemplo 4.SimpleTable4.java
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
public SimpleTable4() {
super("SimpleTable4");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
/*
* Este metodo sirve para determinar el editor predeterminado
* para cada columna de celdas
*/
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*
* No tienes que implementar este mtodo a menos que
* las celdas de tu tabla sean Editables
*/
public boolean isCellEditable(int row, int col) {
return true;
}
/*
* No tienes que implementar este mtodo a menos que
* los datos de tu tabla cambien
*/
public void setValueAt(Object value, int row, int col) {
data[row][col] = value;
fireTableCellUpdated(row, col);
}
La API JTable
Campos
Resumen de los Campos
Campo Descripcin
Proporciona el Cambio de tamao
static int AUTO_RESIZE_ALL_COLUMN
de Todas las columnas durante las
S
operaciones de cambio de tamao
Durante todas las operaciones de
static int AUTO_RESIZE_LAST_COLUM
cambio de tamao, aplica el ajuste
N
nicamente a la ltima columna
Cuando una columna se ajusta,
static int AUTO_RESIZE_NEXT_COLUM
este campo ajusta la siguiente, de
N
forma opuesta
Utiliza una barra de
static int AUTO_RESIZE_NEXT_OFF desplazamiento para ajustar el
ancho de la columna
Cambia las columnas siguientes
static int AUTO_RESIZE_SUBSEQUENT
para preservar el ancho total; este
_COLUMNS
es el comportamiento por omisin
Si tiene el valor de true, la tabla
protected boolean autoCreateColumnsFromModel consulta al TableModel para
construir el conjunto de columnas
Determina si la tabla cambia
protected int automticamente el tamao de la
AutoResizeMode
anchura de sus columnas para
ocupar el ancho total de la tabla
protected Un objeto que sobrescribe la celda
TableCellEditor cellEditor actual y permite al usuario cambiar
sus contenidos
protected boolean cellSelectionEnabled Obsoleto desde la versin 1.3
protected El TableColumnModel de la
TableColumnModel columnModel
tabla
protected El TableModel de la
TableModel dataModel
table
Una tabla de objetos que muestra y
edita el contenido de cada
celda,indexado por clase como
protected Hashtable defaultEditorsByColumnClass
esta declarado en
getColumnClass en la
interface TableModel
Una tabla de objetos que muestra
el contenido de cada
celda,indexado por clase como
protected Hashtable defaultRenderersByColumnClass
esta declarado en
getColumnClass en la
interface TableModel
protected int Identifica la columna de la celda
editingColumn
que esta siendo editada
protected int Identifica la Fila de la celda que
editingRow
esta siendo editada
protected Component editorComp El componente que procesa la
edicin
protected Color gridColor El color de la rejilla(grid)
Utilizado por la interface
protected Dimension preferredViewportSize Scrollable para determinar el
area inicial visible
protected int La altura -en pixeles- de las filas
rowHeight
de la tabla
protected int La altura -en pixeles- del margen
rowMargin
entre las celdas en cada fila
Devuelve true si se permite
protected boolean rowSelectionAllowed
seleccin de fila en esta tabla
protected Color El color de fondo de las celdas
selectionBackground
seleccionadas
protected Color El color de primer plano de las
selectionForeground
celdas seleccionadas
El ListSelectionModel de
protected
ListSelectionModel selectionModel la tabla; se utiliza para controlar
las filas seleccionadas
Las lneas horizontales se dibujan
protected boolean showHorizontalLines entre las celdas cuando el campo
esta en true
Las lneas verticales se dibujan
protected boolean showVerticallLines entre las celdas cuando el campo
esta en true
protected El JTableHeader que funciona
JTableHeader tableHeader
con la tabla
Constructores
Constructores
Constructor Descripcin
JTable() Construye un JTable() predeterminado
JTable(int numRows, int Construye un JTable()con numRows y numColumns
numColumns) de celdas vacas, utilizando DefaultTableModel
Construye un JTable() visualizando los valores de
JTable(Object[][] rowData,
rowData en una matriz bidimencional, utilizando
Object[] columnNames)
columnNames como nombres para las columnas
Construye un JTable() con dm como modelo de tabla,
JTable(TableModel dm) un modelo de columna predeterminado y un modelo de
seleccion predeterminado
Construye un JTable() con dm como modelo de tabla,
JTable(TableModel dm,
TableColumnModel cm) cm como modelo de columna y un modelo de seleccion
predeterminado
JTable(TableModel dm, Construye un JTable() con dm como modelo de tabla,
TableColumnModel cm, cm como modelo de columna y sm como modelo de
ListSelectionModel sm) seleccin
Construye un JTable() para visualizar los valores del
JTable(Vector rowData,
Vector de Vectores, rowData, con nombres de
Vector columnNames)
columnas dados en columnNames
Mtodos
Mtodos
Mtodo Descripcin
Aade la columna aColumn al final de la
void addColumn(TableColumn aColumn)
matriz de columnas
addColumnSelectionInterval(int Aade las columnas desde index0 a
void
index0, int index1) index1, incluidam a la seleccin actual
void llama al mtodo
addNotify() configureEnclosingScrollPane
void addRowSelectinInterval(int index0, Aade las filas desde index0 a
int index1) index1,incluida, a la seleccin actual
void Deselecciona todas las columnas y filas
clearSelection()
seleccionadas
void columnAdd(TableColumnModelEve Invocado cuando una columna es agregada
nt e) al modelo de columa
Obtiene el ndice de la columna en que
int columnAtPoint(Point point) point reside, o -1 si esta fuera del
rango[0, getcolumn()-1]
void columnMarginChanged(ChangeEve Invocado cuando una columna se mueve
nt e) debido al cambio de margenes
void columnMoved(TableColumnModelE Invocado cuando una columna cambia de
vent e) posicin
void columnRemoved(TableColumnMod Invocado cuando una columna es
elEvent e) removida del modelo de columnas actual
void columnSelectionChanged(ListSelecti Invodado cuando el modelo de seleccin
onEvent e) del TableColumnModel a cambiado
Configura los JScrollPane constenidos
instalando el TableHeader de la tabla,
protected void configureEnclosingScrollPane() columnHeaderView del panel
de desplazamiento y as
sucesivamente
Mapea el indice de la columna de la vista
convertColumnIndextoModel(int
int en viewColumnIndex al ndice de la
viewColumnIndex)
columna en el modelo de la tabla
Mapea el indice de la columna en el
convertColumnIndexToView(int modelo de tabla en
int
modelColumnIndex) modelColumnIndex al ndice de la
columna en la vista
protected Obtiene el modelo de objeto de columna
TableColumnModel createDefaultColumnModel() predeterminado, que es un
DefaultTableColumnModel
Crea columnas predeterminadas para la
tabla a partir del modelo de datos
utilizando los mtodos
void createDefaultColumnsFromModel() getColumnCount() y
getColumnClass() definidos en la
interface TableModel
protected Obtiene el modelo de objetos de la tabla
TableModel createDefaultDataModel() predeterminado, que es un
DefaultTableModel
Crea editores de celdas predeterminados
protected void createDefaultEditors()
para objetos, nmeros y boolenos
Crea renderizadores predeterminados para
protected void createDefaultRenderers() objetos, nmeros, doubles, dates,
booleanos, e iconos
protected Devuelve el modelo de seleccin de
ListSelectionModel createDefaultSelectionModel() objetos predeterminado, que es un
DefaultSelectionModel
static JScrollPane createScrollPaneForTable(JTable a Obsoleto. Reemplazado por
table) JScrollPane(aTable)
Inicia la edicin en la celda situada en
boolean editCellAt(int row, int col)
row, col, si sta es editable
editCellAt(int row, int col, Inicia la edicin en la celda situada en
boolean
EventObject e) row, col, si sta es editable
void editingCanceled(ChangeEvent e) llamado cuando la edicin se cancela
void editingStoped(ChangeEvent e) llamado cuando termina la edicin
Obtiene el AccessibleContext
AccessibleContext getAccessibleContext()
asociado con la JTable
Determina si la tabla es capaz de crear
boolean getAutoCreateFromModel() colunas predeterminadas a partir del
modelo actual
int Obtiene el modo de cambio de tamao
getAutoResizeMode()
automtico de la tabla
TableCellEditor getCellEditor() Devuelve el cellEditor
Obtiene el editor adecuado para la celda
TableCellEditor getCellEditor(int row, int column)
situada en row y column
Devuelve un Rectangle que localiza la
getCellRect(int row, int column,
Rectangle celda que reside en la interseccin de row
boolean includeSpacing)
y column
Devuelve un rederizador adecuado para la
TableCellRenderer getCellRenderer(int row, int column)
celda ubicada en row y column
Devuelve true si la seleccion de
boolean getCellSelectionEnabled()
columnas y filas esta habilitada
Devuelve el objeto TableColumn para la
TableColumn columna en la tabla cuyo indicador sea
getColumn(Object identifier)
igual a identifier, cuando se compara
utilizando equals
Class Devuelve el tipo de columna en una
getColumnClass(int column)
posicin de la vista dada
Devuelve el nmero de columnas del
int modelo de columna(ste numero puede ser
getColumnCount()
distinto del nmero de columnas en el
modelo de la tabla)
Devuelve el TableColumnModel que
TableColumnModel getColumnModel() contiene toda la informacin de columnas
de la tabla
Obtiene el nombre de la columna en la
String getColumnName(int column)
posicin column de la vista actual
Devuelve true si se pueden seleccionas
boolean getColumnSelectionAllowed()
las columnas
Devuelve el editor que se debe utilizar
getDefaultEditor(Class
TableCellEditor cuando no se ha configurado nign editor
columnClass)
en un TableColumn
TableCellRenderer getDefaultRenderer(Class Devuelve el renderizador que se debe
columnClass) utilizar cando no se ha seleccionado un
renderizador en un TableColumn
Devuelve el ndice de la columna de la
int getEditingColumn() celda que se encuentra actualmente en
edicin
int Devuelve el ndice de la fila de la celda
getEditingRos()
que se encuentra actualmente en edicin
Component Devuelve el componente que esta
getEditorComponent()
manejando la sesin de edicin
Color Devuelve Devuelve el color utilizado para
getGridColor()
dibujar las lneas de la rejilla
Dimension Devuelve el espaciamiento vertical y
getInterCellSpacing()
horizontal entre celdas
Retorna el TableModel que proporciona
TableModel getModel()
los datos mostrados por el receptor
getPreferredScrollableViewPortSize( Devuelve el tamao predefinido del
Dimension
) ViewPort para la tabla
int getRowCount() Devuelve el nmero de filas en la tabla
int Devuelve la altura, en pixeles, de una fila
getRowHeght()
de la tabla
int Devuelve la cantidad de espacio libre entre
getRowMargin()
las filas
Devuelve true si se pueden seleccionas
boolean getRowSelectionAllowed()
las filas
getScrollableBlockIncrement(Rectan Devuelve el visibleRect.height o
int gle visibleRect, int orientation, int visibleRect.width dependiendo de
direction) la orientacin de la tabla
Devuelve true si la altura del
boolean getScrollableTracksViewportHeight(
ViewPort no determina la altura de la
)
tabla
Devuelve true si la anchura del
boolean getScrollableTracksViewportWidth() ViewPort no determina la anchura de la
tabla
getScrollableUnitIncrement(Rectang Devuelve el incremento en
int le visibleRect, int orientatio, int desplazamiento, en pixeles, que expone
direction) completamente una nueva fila o columna
Devuelve el ndice de la primera columna
int getSelectedColumn() seleccionada -1 si no hay columna
seleccionada
int Devuelve el nmero de columnas
getSelectedColumnCount()
seleccionadas
int [] Obtiene los ndices de todas las columnas
getSelectedColumns()
seleccionadas
Devuelve el ndice de la primera fila
int getSelectedRow() seleccionada -1 si no existen filas
seleccionadas
int getSelectedRow() Devuelve el nmero de filas seleccionadas
int [] Obtiene los ndices de todas las filas
getSelectedRows()
seleccionadas
Color Obtiene el color de fondo para las celdas
getSelectionBackground()
seleccionadas
Color Obtiene el color de primer plano para las
getSelectionForeground()
celdas seleccionadas
Obtiene el ListSelectionModel que
ListSelectionModel getSelectionModel() se utiliza para mantener el estado de
seleccin de la fila
Devuelve true si el recetor dibuja lneas
boolean getShowHorizontalLines() horizontales entre las celdas y false si
no es as
Devuelve true si el recetor dibuja lneas
boolean getShowVerticaltalLines() verticales entre las celdas y false si no
es as
Devuelve el tableHeaderutilizado por
JTableHeader getTableHeader()
la tabla
Devuelve el objeto L&F que renderiza este
TableUI getUI()
componente
Object Devuelve el valor de la celda ubicada en
getValueAt(int row, int column) row, column
protected void Inicia las propiedades de tabla con sus
initializeLocalVars()
valores predeterminados
Devuelve true si la celda ubicada en
boolean isCellEditable(int row, int column)
row, column puede editarse
Devuelve true si la celda ubicada en
boolean isCellSelected(int row, int column)
row, column esta seleccionada
Devuelve true si la columna ubicada en
boolean isColumnSelected(int column)
column esta seleccionada
Devuelve true si la tabla esta editando
boolean isEditing()
una celda
boolean isManagingFocus() Sobrescrito para devolver true
Devuelve true si la fila ubicada en row
boolean isRowSelected(int row)
esta seleccionada
Mueve la columna column a la posicin
void moveColumn(int column, int
ocupada actualmente por la columna
targetColumn)
targetColumn
Devuelve una representacion en String
protected String paramString()
de la Tabla
Component prepareEditor(TableCellEditor Prepara el editpr dado utilizando el valor
editor, int row, int column) de la celda dada
prepaRenderer(TableCellRenderer Prepara el renderizador dado con un valor
Component
renderer, int row, int column) adecuado del DataModel
processKeyBinding(KeyStroke ks, Invocado para procesar el conjunto de
protected boolean KeyEvent e, int condition, boolean teclas para ks, como resultado de procesar
pressed) KeyEvent e
removeColumn(TableColumn Elimina la columna aColumn de la matiz
void
aColumn) de columnas de la JTable
La API DefaultTableModel
Campos
Resumen de los Campos
Campo Descripcin
protected Vector columnIdentifiers Un vector de identificadores de columna
protected Vector dataVector Un vector de valores Object
Constructores
Resumen de los Constructores
Constructor Descripcin
DefaultTableModel() Construye un DefaultTableModel
DefaultTableModel(int Construye un DefaultTableModel con numRows y
numRows, int numColumns) numColumns
DefaultTableModel(Object[] Construye un DefaultTableModel e inicia la tabla
[] data, Object[] pasando data y columnNames al mtodo
columnNames) setDataVector()
Construye un DefaultTableModel con un nmero
DefaultTableModel(Object[]
columnNames, int numRows) de columnas equivalentes al nmero de elementos o
valores nulos en columnNames y numRows
Construye un DefaultTableModel con un nmero
DefaultTableModel(Vector
columnNames, int numRows) de columnas equivalentes al nmero de elementos o
valores nulos en columnNames y numRows
Construye un DefaultTableModel e inicia la tabla
DefaultTableModel(Vector
data, Vector columNames) pasando data y columnNames al mtodo
setDataVector()
Mtodos
Resumen de los Mtodos
Mtodo Descripcin
void addColumnn(Object
Aade una columna al modelo
columnName)
addColumnn(Object
void columnName, Object[] Aade una columna al modelo
columnData)
addColumnn(Object
void columnName, Vector Aade una columna al modelo
columnData)
void addRow(Object[] rowData) Aade una fila al final de modelo
void addRow(Vector rowData) Aade una fila al final de modelo
public
convertToVector(Object[] Obtiene un Vector que contiene los mismos
static
Vector anArray) objetos que el array
public
convertToVector(Object[][] Obtiene un Vector de vectores que contiene
static
Vector anArray) los mismos valores que la matriz anArray
La API AbstractTableModel
Campos
Resumen de los Campos
Campo Descripcin
protected EventListener ListenerList La lista de todos los Listener
Constructores
Constructores
Constructor Descripcin
AbstractTableModel()
Mtodos
Resumen de los Mtodos
Mtodo Descripcin
Agrega a un listener a la lista que se notifica
void addTableModelListener(TableM
cada vez que ocurre un cambio al modelo de
odelListener l)
los datos
int findColumn(String
Retorna una columna dado su nombre
columnName)
Notifica a todos los listeners que el valor de
fireTableCellUpdated(int row,
void la celda[firstRow, lastRow], ha
int column)
sido actualizado
Reenvia la notificacion del evento dado a
void fireTableChanged(TableModelE todos los TableModelListeners que
vent e) se registraron como listener para este
modelo de tabla
Notifica a todos los listeners que el valor de
void fireTableDataChanged() todas las celdas en la tabla, pueden haber
cambiado
Notifica a todos los listeners que las filas
void fireTableRowsDeleted(int dentro del rango [firstRow,
firstRow, int lastRow)
lastRow], inclusive, han sido eliminadas
Notifica a todos los listeners que las filas
void fireTableRowsInserted(int dentro del rango [firstRow,
firstRow, int lastRow)
lastRow], inclusive, han sido insertadas
Notifica a todos los listeners que las filas
fireTableRowsUpdated(int dentro del rango [firstRow,
void
firstRow, int lastRow) lastRow], inclusive, han sido
actualizadas
void Notifica a todos los listeners que la
fireTableStructuredChanged()
estructura de la tabla a sido actualizada
getColumnClass (int Retorna un Object.class sin tomar en
Class
columnIndex) cuenta a columnIndex
Retorna un nombre predefinido para la
String getColumnName(int column) columna usando el estilo de la hoja de
clculo: A, B, C,...
EventListener Devuelve un areglo con todos los listener
[] getListeners(Class listenerType)
del tipo dado en este modelo.
Retorna false; pero se puede
boolean isCellEditable(int rowIndex, int
sobreescribir y devolver true para que las
columnIndex)
celdas sean editables
Elimina un listener de la lista, esta se
void removeTableModelListener(Tabl
notifica cada vez que ocurre un cambio en
eModelListener l)
el modelo de datos.
Es un mtodo vaco que no debe ser
void setValueAt(Object aValue, int
implementado si el modelo de datos no es
rowIndex, int columnIndex)
editable
Comentarios finales
Como hemos visto, la creacin de tablas se convierte en una tarea sencilla cuando comenzamos a
conocer las clases auxiliares que la acompaan para mejorar su rendimiento y eficiencia; la
finalidad de este primer artculo es precisamente empezar a familializarte con estas clases, en
futuros artculos comenzaremos a tratar el manejo de eventos relacionados con las tablas y la
realizacin de tareas ms complejas.