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

De ChuWiki
Saltar a: navegación, buscar
 
(No es getTableColumn, sino getColumn)
 
Línea 14: Línea 14:
 
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
 
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");
+
  TableColumn columna = tabla.getColumn("columna 1");
  
 
Este ''TableColumn'' tiene métodos para fijar el ancho. Los métodos son los siguientes:
 
Este ''TableColumn'' tiene métodos para fijar el ancho. Los métodos son los siguientes:

Revisión actual del 09:19 21 jun 2011

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.getColumn("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.