Foros aprenderaprogramar.com

Aprender a programar => De todo un poco... => Mensaje iniciado por: PATZZZAAVR en 15 de Diciembre 2014, 14:38

Título: Dimensiones en una Grilla ancho de columnas en JTable java setAutoResizeMode
Publicado por: PATZZZAAVR en 15 de Diciembre 2014, 14:38
Buenas gente, necesito ayuda en como puedo digamos achicar o agrandar cada fila de acuerdo al rango del contenido.

El problema es que tengo campos como por ejemplo N° así como Activo ocupan un espacio ya grande para lo que es su contenido y en Clientes no aparece el nombre completo de cada cliente, por lo que me interesa que unos campos sean más grandes y otros más pequeños en cuanto a anchura de la tabla.

¿Cómo puedo reducir el tamaño de unos anchos y agrandar otros según las necesidades?
Título: Re:Dimensiones en una Grilla
Publicado por: Mastermind en 15 de Diciembre 2014, 16:24
Hola patzzzaavr ¿Con qué lenguaje de programación has creado esa tabla? ¿Cuál es el código donde creas la tabla?
Título: Re:Dimensiones en una Grilla
Publicado por: PATZZZAAVR en 15 de Diciembre 2014, 18:37
Programo en Java con Eclipse.

La linea supongo que son estas

Código: [Seleccionar]
private DefaultTableModel dtmEstadia = new DefaultTableModel(null,new String[] { "N°", "Clientes", "Habitación", "Fech Entrada", "Monto", "Activo"});
private JTable getTable() {
if (table == null) {
table = new JTable();
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
String cod = "";
if (table.getSelectedRow() >= 0) {
cod = String.valueOf(dtmEstadia.getValueAt(table.getSelectedRow(), 0));
System.out.println(cod);
try {

es = SesionEstadia.consultarCodigoEsta(Integer.parseInt(cod));
System.out.println(cod);
if (es != null) {
System.out.println(es.getCodigo());
tCodigo.setText(String.valueOf(es.getCodigo()));
tFechaEntrada.setText(String.valueOf(es.getFecentra()));
tCodigoCliente.setText(String.valueOf(es.getCliente().getCodigo()));
tNombreCli.setText(String.valueOf(es.getCliente().getNombre()));
tCodigoHabitacion.setText(String.valueOf(es.getHabita().getCodigo()));
tDesHabita.setText(String.valueOf(es.getHabita().getDescripcion()));
tMonto.setText(String.valueOf(es.getHabita().getMondia()));
tSubTotalDetalle.setText(String.valueOf(es.getMonto()));
textArea.setText(String.valueOf(es.getObservacion()));
listadoDetalle = SesionDetalle.consultarDetalleCodigoEstadios(Integer.parseInt(cod));

if (listadoDetalle != null) {
while (dtmDetalle.getRowCount() > 0) {
dtmDetalle.removeRow(0);

}
cargarGrillaDetalle();

}
estadoEdicionBotn(false, true, true, true,true, false, true, true,false,false);
estadoEdicionEstadia(false, false, false,false, false, false, false, false,false, false, false);
table_2.setEnabled(true);

}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}

}
});
table.setModel(dtmEstadia);
table.setSelectionBackground(Color.GRAY);
table.setSelectionForeground(Color.cyan);
table.setIntercellSpacing(new Dimension(4, 4));
table.setRowMargin(2);
table.setOpaque(false);
}
return table;
}

El codigo es algo extenso :P
Título: Re:Dimensiones en una Grilla
Publicado por: Mastermind en 16 de Diciembre 2014, 08:37
Hola creo que podrías probar a hacer table.setAutoResizeMode(JTable.AUTO_RESIZE_ON); para ver si te redimensiona y te adapta los anchos de columna.

Si no te funciona, puedes hacerlo estableciendo tú el ancho que quieras por ejemplo:

table.getColumnModel().getColumn(0).setPreferredWidth(27);
table.getColumnModel().getColumn(1).setPreferredWidth(180);
table.getColumnModel().getColumn(2).setPreferredWidth(100);
table.getColumnModel().getColumn(3).setPreferredWidth(90);
table.getColumnModel().getColumn(4).setPreferredWidth(90);
table.getColumnModel().getColumn(4).setPreferredWidth(60);

Saludoss