Descarga el proyecto aquí
En seguida escribo un método que nos permitirá hacer esto de una manera fácil.
1 /**
2 * Asignamos el ancho fijo para cada columna de la tabla.
3 */
4 private void setAnchoColumnas() {
5 int anchoTabla = 638; //Ancho del jScrollPane1.
6 int anchoColumna = 0, anchoColumnaMin = 0, anchoColumnaMax = 0;
7 //TableColumn nos provee de métodos para minimizar, maximizar,etc. columnas de tabla.
8 TableColumn columnaTabla = null;
9
10 for(int i=0; i<tblNombres.getColumnCount(); i++) {
11 //Obtenemos el modelo de las columnas de la tabla.
12 columnaTabla = tblNombres.getColumnModel().getColumn(i);
13
14 switch(i) {
15 case 0: anchoColumna = (20*anchoTabla)/100; //20 representa el porcentaje del ancho total
16 anchoColumnaMin = (20*anchoTabla)/100; //que ocupara la primera columna.
17 anchoColumnaMax = (20*anchoTabla)/100;
18 break;
19 case 1: anchoColumna = (35*anchoTabla)/100;
20 anchoColumnaMin = (35*anchoTabla)/100;
21 anchoColumnaMax = (35*anchoTabla)/100;
22 break;
23 case 2: anchoColumna = (35*anchoTabla)/100;
24 anchoColumnaMin = (35*anchoTabla)/100;
25 anchoColumnaMax = (35*anchoTabla)/100;
26 break;
27 case 3: anchoColumna = (10*anchoTabla)/100;
28 anchoColumnaMin = (10*anchoTabla)/100;
29 anchoColumnaMax = (10*anchoTabla)/100;
30 break;
31 }
32
33 //Aplicamos el ancho para cada columna de la tabla.
34 columnaTabla.setPreferredWidth(anchoColumna);
35 columnaTabla.setMinWidth(anchoColumnaMin);
36 columnaTabla.setMaxWidth(anchoColumnaMax);
37 }
38 }
Imagen de las columnas del JTable redimensionado del proyecto para descarga.
Espero que les sirva el ejemplo.
Recuerda: Si te ha servido el contenido del artículo y lo has utilizado, tu comentario de agradecimiento u opinión será bienvenido para continuar mejorando...