Autor Tema: Dimensiones en una Grilla ancho de columnas en JTable java setAutoResizeMode  (Leído 22765 veces)

PATZZZAAVR

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
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?
« Última modificación: 27 de Agosto 2022, 18:33 por César Krall »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Dimensiones en una Grilla
« Respuesta #1 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?

PATZZZAAVR

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 12
    • Ver Perfil
Re:Dimensiones en una Grilla
« Respuesta #2 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
« Última modificación: 27 de Agosto 2022, 18:30 por César Krall »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Dimensiones en una Grilla
« Respuesta #3 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

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".