Personal tools
Document Actions

TableContainer

by Victor Acevedo last modified 2010-06-01 22:52

Potente herramienta para generar tablas. Existen varios modelos de tablas que se pueden generar.

La clase Table extiende de BaseContainer, que a su vez extiende de JPanel. El objetivo de la herramienta es crear un panel que incluya una tabla. Existen varios modelos para generar la tabla, estos son:

  • ListModel
  • TreeRadioButtonModel
  • RadioButtonModel
  • CheckBoxModel
  • TableButtonModel

El modelo que se generará por defecto si no se especifica uno será "ListModel". La herramienta incluye listeners para capturar y gestionar los eventos de control de la tabla para añadir una nueva entrada, eliminar una entrada específica y eliminar todas. Estos eventos son generados por botones incluidos en el panel, como se verá en las capturas realizadas.

A continuación se incluyen imágenes de los modelos desarrollados.

imagenes/TableContainerList.JPG

Ejemplo de tabla con modelo "Lista"

imagenes/TableContainerCheckBox1.JPG

Ejemplo de tabla con modelo "CheckBox"

imagenes/TableContainerButtons.JPG

Ejemplo de tabla con modelo "Buttons"

imagenes/TableContainerRadioButton1.JPG

Ejemplo de tabla con modelo "RadioButtons"

A continuación se incluyen fragmentos de código necesario para generar las imágenes mostradas anteriormente.

Constructor, común a todos lo modelos de tablas, se le pasa el ancho y el alto y el nombre de las columnas y el ancho que necesitamos para las columnas

TableContainer table = new TableContainer(w - 12, h - 45, columnNames, columnWidths);;
String[] columnNames = {"R", "G", "B", "T/F","columna 4"};
int[] columnWidths = {22, 22, 22,22, 334};

Luego se establece el modelo a utilizar en la tabla

table.setModel("TreeRadioButtonModel");
table.setModel("TableButtonModel");
table.setModel("RadioButtonModel");
table.setModel("LsitModel");  //o no poner nada, ya que por defecto se establece este modelo

Se debe incluir la llamada para inicializar la tabla

table.initialize();

Generar las filas, por ejemplo en el modelo de RadioButton sería

Object[] row = {new Boolean(true), new Boolean(false), new Boolean(false), new Boolean(true),"texto 0"}; 
Object[] row1 = {new Boolean(false), new Boolean(true), new Boolean(false),new Boolean(false), "texto 1"};
Object[] row2 = {new Boolean(false), new Boolean(false), new Boolean(true), new Boolean(true),"texto 2"};
table.addRow(row);
table.addRow(row1);
table.addRow(row2);

Y por último añadir la tabla generada a la ventana y los listeners necesarios

frame.addComponentListener(this);             
frame.getContentPane().add(table);

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: