Anda di halaman 1dari 4

Blog de Kike Navarro

DOMINGO 2 DE ENERO DE 2011

Modelo de tablas abstracto (AbstractTableModel)

Una forma apropiada de representar informacin acerca de un tema en particular es utilizando modelos de tablas fciles de programar a nuestro propio estilo y conveniencia. Java ofrece componente llamado modelo de tabla abstracto (la clase AbstractTableModel del paquete javax.swing.table) que implementa la interface TableModel cuyos mtodos a implementar son los siguientes: public int getRowCount() - Retorna el nmero de filas que contiene la tabla. public int getColumnCount() - Retorna el nmero de columas de la tabla. public Object getValueAt( int fila, int columna ) - Retorna el elemento/valor ubicado en la posicin (fila, columna) de la tabla. Entonces, para ilustrar el ejemplo del uso de la clase AbstractTableModel tendremos el siguiente cdigo de ejemplo con los mtodos mencionados anteriormente:
class MiTabla extends AbstractTableModel { @Override public int getRowCount() { return 10; } @Override public int getColumnCount() { return 10; } @Override public Object getValueAt( int fila, int columna ) { return "#VALOR#"; } }

Adems de esos mtodos podemos sobreescribir otros cuatro propios de la clase AbstractTableModel. Dichos mtodos son:
public Class getColumnClass( int columna ) - Retorna el tipo de clase de una columna en particular, es decir el tipo de objeto que est alojando esa columna en la tabla. public String getColumnName( int columna ) Retorna el nombre de la columna. public boolean isCellEditable( int fila, int columna ) - Retorna true si la celda especificada por la posicin (fila, columna) tiene activado el modo edicin, de lo contrario retorna false. public void setValueAt( Object valor, int fila, int columna ) Establece un valor (objeto) dentro de la tabla en la posicin especificada por fila, columna. La descripcin de otros mtodos la podemos encontrar en la pgina de documentacin de AbstractTableModel. Cabe mencionar que a este tipo de tablas se les pueden aplicar estilos personalizados para hacerlas ms agradables a la vista del usuario, por ejemplo cambiar el color de las filas y columnas, la fuente del texto e incluso agregar componentes Swing como parte de los datos. A continuacin se presenta un ejemplo de la implementacin de los mtodos anteriores. Para ello se incorpora una tabla en un formulario que contendr la clave, nombre y direccin de los usuarios de una empresa ficticia. Utilizaremos la clase Persona que define los mtodos necesarios para insertar y recoger dichos valores, su estructura es la siguiente:

final class Persona { public Persona() { this( 0, "", "" ); } public Persona( int clave, String nombre, String direccion ) { setClave( clave ); setNombre( nombre ); setDireccion( direccion ); } public void setClave( int clave ) { this.clave = clave; } public void setNombre( String nombre ) { this.nombre = nombre; } public void setDireccion( String direccion ) { this.direccion = direccion; } public void setPersona( Persona persona ) { this.persona = persona; } public int getClave() { return clave; } public String getNombre() { return nombre; } public String getDireccion() { return direccion; } public Persona getPersona() { return this; } private private private private }
Una vez que tenemos la clase Persona podemos escribir la clase Tabla que defina el comportamiento de la tabla.

int clave; String nombre; String direccion; Persona persona;

class Tabla extends AbstractTableModel { public Tabla() { nombres = new String[]{ "CLAVE", "NOMBRE", "DIRECCIN" }; datos = new Vector( 0 ); } @Override public Class getColumnClass( int columna ) { return getValueAt( 0, columna ).getClass(); } @Override public String getColumnName( int columna ) { return nombres[ columna ]; } @Override public int getRowCount() { return datos.size(); } @Override public int getColumnCount() { return nombres.length; } @Override public Object getValueAt( int fila, int columna ) { if( datos.size() > 0 ) switch( columna ) { case 0: return datos.get( fila ).getClave(); case 1: return datos.get( fila ).getNombre(); case 2: return datos.get( fila ).getDireccion(); } return ""; } public void agregarRegistro( Persona persona ) { datos.add( persona ); fireTableStructureChanged(); } private Vector datos; private String nombres[]; }
Publicado por Kike Navarro en 1/02/2011 12:04:00 AM Etiquetas: AbstractTableModel, Java

Reacciones:
0 comentarios: Publicar un comentario en la entrada

Entrada ms recienteEntrada antiguaPgina principal


Suscribirse a: Enviar comentarios (Atom)
ARCHIVO HISTRICO

2011 (3) o ene (3) CAPTURAR VIDEO DESDE UNA CMARA WEB CON JAVA (2DA....
CAPTURAR VIDEO DESDE UNA CMARA WEB CON JAVA (1RA.... Modelo de tablas abstracto (AbstractTableModel) 2010 (7) 2009 (10)

ETIQUETAS

AbstractTableModel (1) Arreglos (3) Conexin MySQL (1) Conexin Oracle (1) Instalacin (2) Java (13) JMF (2) Lectura de datos (4) MySQL (1) Propiedades (1) Respaldo (1) String (1)

CATEGORIAS

AbstractTableModel (1) Arreglos (3) Conexin MySQL (1) Conexin Oracle (1) Instalacin (2) Java (13) JMF (2) Lectura de datos (4) MySQL (1) Propiedades (1) Respaldo (1) String (1) Plantilla Picture Window. Con la tecnologa de Blogger.

Anda mungkin juga menyukai