Diferencia entre revisiones de «JTable: Fijar ancho de las columnas»

De ChuWiki
Saltar a: navegación, buscar
(Sin diferencias)

Revisión del 22:06 17 ene 2008

Normalmente en un JTable las columnas cogen el ancho adecuado para mostrar los datos, dentro de lo posible y de los datos iniciales que tenga en el momento de visualizarlo. A veces esto no es suficiente y queremos hacer que alguna columna tenga un ancho determinado. Vamos a ver cómo hacerlo.

Si hemos creado así el JTable

DefaultTableModel modelo = new DefaultTableModel();
modelo.addColumn("columna 1");
modelo.addColumn("columna 2");
modelo.addRow(new String [] {"11","12"});
modelo.addRow(new String [] {"21","22"});
JTable tabla = new JTable(modelo);

las columnas se llaman "columna 1" y "columna 2". Podemos obtener un TableColumn -clase que representa una columna- de la columna que nos interese pidiéndoselo al JTable por su nombre

TableColumn columna = tabla.getTableColumn ("columna 1");

Este TableColumn tiene métodos para fijar el ancho. Los métodos son los siguientes:

  • columna.setPreferredWidth(anchoEnPixels) -- Fija el ancho preferido de la columna en pixels. En el momento de visualizar el JTable la columna tendrá, si es posible, este ancho. Luego el usuario puede modificarlo.
  • columna.setMinWidth(anchoEnPixels) -- Este fija el ancho mínimo que puede tener la columna. El usuario no podrá reducir la columna menos de este ancho.
  • columna.setMaxWidth(anchoEnPixels) -- Este fija el ancho máximo que puede tener la columna. El usuario no puede hacer la columna más ancha.

Si fijamos simultánemante el mínimo y el máximo con el mismo valor, la columna tendrá un ancho fijo y no se podrá modificar.