Hola a todos, tengo una ventana, en la que tengo una JTable metida dentro de un JScrollPane, y un botón añadir fila. Quiero que cuando añada una nueva fila el ScrollPane aparezca al final del todo y la fila aparezca seleccionada y se vea la nueva fila añadida seleccionada. EL código que tengo dentro del método que define la acción es el siguiente:
public void actionPerformed(ActionEvent evt) {
Container panelBotonera = ((JComponent) evt.getSource()) .getParent();
Container panelGrupo = ((JComponent) panelBotonera).getParent();
Component ScrollContactos = panelGrupo.getComponent(0);
Component vista = ((JScrollPane) ScrollContactos) .getComponent(0);
Component Tabla = ((JViewport) vista).getView();
TableModel myModel = ((ContactosJTable) Tabla).getModel();
((ContactosJTablaModel) myModel).addNewRow();
int filanueva=(((ContactosJTable) Tabla).getModel()).getRowCount();
((ContactosJTable)Tabla).setRowSelectionInterval(f ilanueva-1,filanueva-1);
(((JScrollPane)ScrollContactos).getVerticalScrollB ar()).setValue((((JScrollPane)ScrollContactos).get VerticalScrollBar()).getMaximum());
}
};
Poniendolo así , el ScrollPane no se entera de que he añadido una nueva fila, y al pedir que se ubique al final se queda justo en la fila anterior no al final del todo. He probado a poner ((ContactosJTable) Tabla).revalidate(); a ver si es que se tenia q enterar la vista del Scrooll q se ha añadido una nueva fila en la tabla pero nada. ¿Alguien podría echarme una mano para coseguir que la barra vertical del Scroll pane aarezca al final del todo y muestra la nueva fila añadida?
Muchas gracias de antemano.
Saludos