Tablas
Necesito que al seleccionar un registro en una tabla(JTable) el scroll se mueva hasta esa posicion, pues lo hago con setRowSelectionInterval y si selecciona el renglon pero el scrollPane no se mueve hasta ahi, por tanto no se ve el segistro actualmente seleccionado, ¿que puedo hacer para que se vea?
Prueba con esto que me enviaron a mi una vez:
JTable.scrollRectToVisible(new Rectangle (getCoordenadasCeldaRespectoTabla(fila, 0), getTamañoCelda(0)));
private Point getCoordenadasCeldaRespectoTabla (int fila, int columna) {
int desplazamientoColumna = 0;
for (int i=0; i<columna && i<table.getColumnCount(); i++)
desplazamientoColumna += table.getColumnModel().getColumn(i).getWidth();
int deplazamientoFila = table.getRowHeight()*fila;
if (table.getSize().getHeight()<=deplazamientoFila)
deplazamientoFila = (int)table.getSize().getHeight()-table.getRowHeight();
int x = desplazamientoColumna;
int y = deplazamientoFila;
return new Point (x, y);
}
Lo que hace el métodoo scrollRectToVisible() es llevarte el scroll al
rectángulo que le indicas, y el nuevo rectángulo lo puedes obtener
a partir de las coordenadas de la columna que tienes seleccionada (o que quieres visualizar)
A ver si te ayuda en algo UN SALUDO
JTable.scrollRectToVisible(new Rectangle (getCoordenadasCeldaRespectoTabla(fila, 0), getTamañoCelda(0)));
private Point getCoordenadasCeldaRespectoTabla (int fila, int columna) {
int desplazamientoColumna = 0;
for (int i=0; i<columna && i<table.getColumnCount(); i++)
desplazamientoColumna += table.getColumnModel().getColumn(i).getWidth();
int deplazamientoFila = table.getRowHeight()*fila;
if (table.getSize().getHeight()<=deplazamientoFila)
deplazamientoFila = (int)table.getSize().getHeight()-table.getRowHeight();
int x = desplazamientoColumna;
int y = deplazamientoFila;
return new Point (x, y);
}
Lo que hace el métodoo scrollRectToVisible() es llevarte el scroll al
rectángulo que le indicas, y el nuevo rectángulo lo puedes obtener
a partir de las coordenadas de la columna que tienes seleccionada (o que quieres visualizar)
A ver si te ayuda en algo UN SALUDO