buscar en una jtable
hola espero me puedan ayudar lo que quiero hacer es que en una jtable que este en un jscrollpane cuando busque un dato y lo encuentre la j table se mueva de tal manera que se muestre la fila donde esta el dato
Para ello puedes seleccionar la fila y mover el scroll hasta ella:
public void setFilaSeleccionada(int fila){
table.setRowSelectionInterval(fila, fila);
table.scrollRectToVisible(new Rectangle (getCoordenadasCeldaRespectoTabla(fila, 0), getTamañoCelda(0)));
}
private Dimension getTamañoCelda (int columna) {
return new Dimension (table.getColumnModel().getColumn(columna).getWidth(), table.getRowHeight());
}
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);
}
public void setFilaSeleccionada(int fila){
table.setRowSelectionInterval(fila, fila);
table.scrollRectToVisible(new Rectangle (getCoordenadasCeldaRespectoTabla(fila, 0), getTamañoCelda(0)));
}
private Dimension getTamañoCelda (int columna) {
return new Dimension (table.getColumnModel().getColumn(columna).getWidth(), table.getRowHeight());
}
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);
}