JTable es uno de los componentes más complejos que tiene java ya que está basado en el patrón de diseño MVC, por ello en este apartado daremos exclusivamente a entender qué métodos requiere este componente para representar los datos al momento de crearse, gracias a un modelo de tabla prediseñado por nosotros. Cabe destacar que JTable solo se encarga de mostrar datos, más no gestionarlos.
JTable es un componente que requiere de una clase que implemente la interfaz TableModel para poder leer los datos que quiere mostrar. TableModel o también Modelo de Tabla, posee los métodos necesarios de los cuales hace uso un JTable para mostrar de manera correcta la información que va en cada celda de esta.
JTable es un componente que requiere de una clase que implemente la interfaz TableModel para poder leer los datos que quiere mostrar. TableModel o también Modelo de Tabla, posee los métodos necesarios de los cuales hace uso un JTable para mostrar de manera correcta la información que va en cada celda de esta.
Los método descritos a continuación son del TableModel y serán interpretados por el JTable para mostrar los datos de la manera que queramos:
- public int getColumnCount( ): Este método le dirá al JTable cuántas columnas tiene nuestra tabla por medio del valor entero que retorna.
- public int getRowCount( ): Al igual que el método anterior este representa el número de filas de la tabla.
- public Class<?> getColumnClass(int columnIndex): Este método puede resultar un tanto complicado, pero en simples palabras, cada columna de la tabla representa un tipo de dato, esto es, si por ejemplo tenemos las columnas que representen una "Cantidad", un "Nombre" y un "Precio"; bien sabemos que "cantidad" puede representar una clase Integer, "nombre" una campo de tipo String, y "precio" del tipo Double. Por ello el tipo de retorno de este método es del tipo Class que representa a dicha clase.
- public String getColumnName(int columnIndex): Este método retorna el nombre que va a tener la cabecera de cada columna, pasándole como parámetro el indice de la columna, esto es empezando desde el 0.
- public boolean isCellEditable(int rowIndex, int columnIndex): Permite decirle al JTable qué celdas son editables en base al índice de la fila y columna, retornando una valor boolean.
- public Object getValueAt(int rowIndex, int columnIndex): Este es el método que JTable usa para obtener los datos que va a ir en cada celda de la tabla. Gracias a los métodos antes definidos como son getColumnCount( ) y getRowCount( ), JTable sabe con exactitud cuántas filas y columnas tendrá la tabla, por ende recorre tantas veces este método en base a estos valores para obtener dichos datos que serán mostrados en la tabla. Y con el método getColumnClass, convertirá dichos valores al tipo de dato que corresponden; hay que tener cuidado con este último ya que podría surgir una excepción en tiempo de ejecución.
- public void setValueAt(Object aValue, int rowIndex, int columnIndex): Este método se encargá de asignar los datos al TableModel, según sea la celda correspondiente a la fila y columna que se ha modificado.
- addTableModelListener y removeTableModelListener: Estos dos últimos métodos son los encargados de notificar las modificaciones que ocurran en el TableModel. Su implementación puede ser un tanto difícil de hacerla.
Felizmente Java ya nos proporciona una clase que se encarga de implementar la mayoría de métodos que puedan sernos difícil de implementar, dejándonos a nosotros los métodos más importantes para representar nuestros datos. La clase se llama AbstractTableModel. Bastaría con extender esta clase y sobreescribir los métodos que solo son necesarios. La siguiente imagen muestra los métodos más elementales a implementar.
En este post vimos los elementos básicos necesarios para poder representar nuestros datos en un JTable, en base al manejo de estos, que es lo más importante al momento de usar este componente. En el siguiente post veremos con un ejemplo como usar el TableModel y asignarlo al JTable. Espero sus comentarios y sugerencias.. Gracias..