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);