ayuda con JTable

pronuer
22 de Julio del 2005
Hola a todos de nuevo por aqui molestandolos

preguntava acerca de como se puede modifcar el tamaño de una columana en una tabla y este fue el metodo que use asi que si alguien lo quiere usar adelante.

TableColumn column = null;
column = Jtable.getColumnModel().getColumn(0);
column.setPreferredWidth(450);

mi duda ahora es que en mi busqueda llege a encontrar una aplicacion en donde tenia un jtable y unas opciones y entre ellas se encontraba la de poder decidir que columa se visualizaba lo malo es que no la encuentro pero creo que se puede, es decir deseo saber como ocultar una columna de un Jtable pero que esa columna sigua existiendo y teniendo los datos introducidos no se si me explico

muchas gracias y suerte

chuidiang
22 de Julio del 2005
Hola:

No sé si hay una forma fácil de hacerlo (algún método astuto en una clase escondida).
Una forma de hacerlo es la siguiente.

Tu tienes tu modelo de datos (un DefaultTableModel o uno hecho por ti que implemente TableModel).

Te haces otro modelo que implemente TableModel y que admita en el constructor tu modelo original.

Ahora solo se trata de ir redefiniendo métodos. Por ejemplo, el de getColumnCount() debe decir que tienes las que quieres visibles, el getValueAt() debe devolver el valor del modelo original, pero teniendo en cuenta que hay columnas ocultas, etc, etc.
Este modelo de columnas ocultas debería suscribirse a los cambios en el modelo original (modeloOriginal.addTableModelListener(this)) y debería avisar de los cambios a sus propios suscriptores.

El codigo para inicializar todo esto sería este

DefaultTableModel modeloOriginal = new DefaultTableModel();
ModeloConColumnaOculta modelo=new ModeloConColumnaOculta(modeloOriginal);
JTable tabla = new JTable(modelo);

Este ModeloConColumnaOculta, si lo haces un poco general, puede servirte para cualquier tabla y puede ser configurable para indicar qué columnas se quieren ocultas e incluso cambiarlo sobre la marcha.

No sé si me he liado demasiado....

Se bueno.

jjchinga
22 de Julio del 2005
estamos en el mismo problema , espero que este ejemplo te ayude mas a ti que a mi http://www.java2s.com/ExampleCode/Swing-Components/HideColumnTableExample.htm
si encuentras la solucion me pasas la voz

Ignacio
22 de Julio del 2005
Yo tenía el mismo problema y lo he solucionado poniendo el tamaño preferido, mínimo y máximo de la columna correspondiente a cero:

//una vez creada la tabla
TableColumn column = null;
//obtenemos la columna Vegetarian
column = table.getColumnModel().getColumn(4);
//le ponemos la anchura preferida, mínima y máxima a 0
column.setPreferredWidth(0);
column.setMinWidth(0);
column.setMaxWidth(0);