Foros del Web » Programación para mayores de 30 ;) » Java »

¿Cómo dejar fija la altura de un JTable?

Estas en el tema de ¿Cómo dejar fija la altura de un JTable? en el foro de Java en Foros del Web. Hola a todos! Estoy haciendo una aplicación en Java siguiendo un formato para generar un archivo con la información de un inventario, y parte de ...
  #1 (permalink)  
Antiguo 29/06/2014, 13:40
Avatar de Ferkhis  
Fecha de Ingreso: mayo-2011
Ubicación: Medellín
Mensajes: 52
Antigüedad: 13 años, 6 meses
Puntos: 2
Pregunta ¿Cómo dejar fija la altura de un JTable?

Hola a todos!

Estoy haciendo una aplicación en Java siguiendo un formato para generar un archivo con la información de un inventario, y parte de esta información debe ser ingresada a un JTable, de donde más tarde la recogeré y la guardaré. El problema que tengo, es que cuando declaro el JTable y el JScrollPane, al enviar el modelo de datos, si son muchas filas, las dimensiones del JTable me cambian, haciéndose enorme. Y cuando son pocos, se ve también muy pequeña la tabla...

Es decir, establezco para la JTable y el JScrollPane una altura de 100, pero cuando ingreso el modelo de datos al arrancar la aplicación, si son poquitas filas, la altura se reduce por ejemplo a 30, y si son muchas filas, la altura se aumenta a 200 por ejemplo...Dejando los scrollbars inútiles, ya que son las dimensiones del JTable y del JScrollPane las que cambian... cómo puedo dejar fijas estas dimensiones? Adjunto el código de la sección de mi programa y espero que puedan ayudarme.

//Se declara un vector con los títulos de las columnas de la tabla
String [] d={"REFERENCIA","PLU", "SUBL", "DESCRIPCIÓN", "MARCA", "PESO" , "UMD", "REG. INVIMA", "VENCIMIENTO", "COSTO FOB", "COSTO CAJA", "PEDIDO UDS", "PEDIDO CAJAS", "TOTAL PEDIDO", "# PEDIDO"};
//Se declara un vector de vectores para poner al comienzo del programa. Más tarde, se agregaran valores traidos desde la Maestra de Excel
Object[][] info={{null, null}, {null, null}, {null, null}, {null, null}, {null, null},{null, null}, {null, null}, {null, null}, {null, null}, {null, null}};

MiModelo model = new MiModelo(); //Se declara un modelo para definir qué valores serán nombres de columna, y qué valores serán contenido en celdas
model.setDataVector(info, d); //Se ponen en primer lugar la matriz con los valores de celdas, y en segundo lugar el vector con títulos de columna

final JTable tblPedidos = new JTable(model); //Se declara la tabla con un modelo de datos que hemos definido
tblPedidos.setLocation(10,400);
tblPedidos.setSize(1170,100);
//tblPedidos.setAutoResizeMode(JTable.AUTO_RESIZE_OF F);
tblPedidos.getTableHeader().setFont(new Font("arial",1,13));
tblPedidos.getTableHeader().setReorderingAllowed(f alse); // Esto hace que las columnas no se muevan
tblPedidos.setRowSelectionAllowed(true); //Con las selecciones true de filas y columnas
tblPedidos.setColumnSelectionAllowed(true);//sólo queda habilitada la selección de celda

final JScrollPane scroll = new JScrollPane(tblPedidos, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scroll.setLocation(10,400);
scroll.setSize(ventana.getWidth()-30, 100);
  #2 (permalink)  
Antiguo 01/07/2014, 08:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: ¿Cómo dejar fija la altura de un JTable?

Hola,

prueba con VERTICAL_SCROLLBAR_ALWAYS, algo asi:

Código Java:
Ver original
  1. int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;  
  2. int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
  3. scroller = new javax.swing.JScrollPane(table, v, h);
__________________
Salu2!

Etiquetas: altura, height, jtable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:44.