JTable не прокручивается вверх - PullRequest
2 голосов
/ 12 ноября 2011

У меня есть JScrollPane с JTreeTable.Обычно мой JTable содержит много элементов, и приложение должно установить фокус на конкретную строку в древовидной таблице и прокрутить до нее.Я использую следующий рекомендуемый код для установки фокуса:

table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));

По какой-то причине это работает, только если вновь выбранная строка находится ниже текущих видимых строк.Но когда программа просит выбрать невидимую строку выше текущей видимой строки, она вообще не прокручивается до этой позиции.Я много гуглил о проблеме, но пока не нашел решения.У кого-нибудь есть идеи, как решить эту проблему?Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 12 ноября 2011

Метод scrollRectToVisible () обеспечивает только видимость прямоугольника в области просмотра. Я считаю, что вы можете сделать прямоугольник того же размера, что и окно просмотра, чтобы вызвать прокрутку, даже когда начальная точка видна.

Более простой подход заключается в использовании:

scrollPane.getViewport().setViewPosition(...);
2 голосов
/ 04 октября 2014

Для обработки условия прокрутки у меня работал следующий обход:

table.scrollRectToVisible(table.getCellRect(0, 0, true));
table.scrollRectToVisible(table.getCellRect(rowIndex, vColIndex, true));
...