[JTable] Przeskakiwanie do wybranego wiersza

0

Mam JTable i zaznaczam jakiś wiersz za pomocą
table.setRowSelectionInterval(rowIndex, rowIndex);

Metoda ta zaznacza wiersz, ale nie przeskakuje do niego. Nie jest on widoczny i użytkownik musi go szukać za pomocą suwaka. Co zrobić, aby tabelka automatycznie przeskakiwała do zaznaczonego wiersza tak, aby był on widoczny na ekranie?

0

A próbowałeś użyć po prostu metody validate() lub podobnej, która odświeża widoczny stan komponentu JTable?

Możesz sprawdzić co się dzieje przez tymczasowe zdefiniowanie:

@Override public void valueChanged(ListSelectionEvent e)
{
super.valueChanged(e);
System.out.println("JTable próbuje zaktualizować widok");
}

Wtedy dowiesz się czy cały obiekt działa prawidłowo, tylko coś nie gra z wyświetlaniem, czy jednak coś namieszałeś i JTable w ogóle nie próbuje zaktualizować widoku komponentu.

0

Ja próbowałem, nie działa. JList ma odpowiednią metodę

 ensureIndexIsVisible(int index) 

w JTable chyba nic odpowiedniego nie ma.

0

Witam. Myślę, że znam rozwiązanie twojego problemu:

Rectangle aRect= jTable1.getCellRect(jTable1.getSelectedRow(), jTable1.getSelectedColumn(), true);
jTable1.scrollRectToVisible(aRect);

Podobna rzecz ma się z kontrolką jTree:

jTree1.scrollPathToVisible(new TreePath(childNode.getPath()));
ale to inna bajka :)

Pozdrawiam.

0

kaszaklabs, działa. Dzięki xD

1 użytkowników online, w tym zalogowanych: 0, gości: 1