Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать видимой выделенную строку в JTable? / 6 сообщений из 6, страница 1 из 1
05.11.2013, 19:43:31
    #38453636
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
Допиливаю класс для работы в Oracle Forms.
Обычно весь необходимый функционал легко находился в интернете.
Вот и сейчас:
Необходимо: Установить выделение на определённую строку в JTable. Сделать область с этой строкой видимой.
Для этого написал то, что нашёл в инете:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
      
      table.changeSelection(iRowPos,iCellPos,false,false);
      table.setRowSelectionInterval(iRowPos,iRowPos); 
        JViewport viewport = (JViewport)table.getParent();
        Rectangle rect = table.getCellRect(iRowPos, iRowPos, true);  
        Point pt = viewport.getViewPosition();
        rect.setLocation(rect.x-pt.x, rect.y-pt.y);
        table.scrollRectToVisible(rect);


Результат - выделение устанавливается на нужную строку.
Но эта область может оказаться за пределами видимости на экране (приходится прокручивать).

Что нужно написать, чтобы автоматически выделенная строка появлялась на экране?
Заранее благодарен. В Java не специалист.
...
Рейтинг: 0 / 0
05.11.2013, 20:56:30
    #38453697
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
Вот это по-моему лишнее. А так должно работать.
Код: java
1.
2.
        Point pt = viewport.getViewPosition();
        rect.setLocation(rect.x-pt.x, rect.y-pt.y);
...
Рейтинг: 0 / 0
06.11.2013, 10:47:50
    #38454078
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
Да, спасибо, всё работает.
И не пришлось менять ни строчки кода.
Видимо, вчера загружался старый JAR из кэша.
Спасибо за ответ.
...
Рейтинг: 0 / 0
06.11.2013, 11:00:45
    #38454095
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
Работает не всегда, нестабильно...
Придётся разбираться более досконально.
Буду благодарен за советы.
С уважением,
medium
...
Рейтинг: 0 / 0
06.11.2013, 11:08:48
    #38454117
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
mediumРаботает не всегда, нестабильно...
Придётся разбираться более досконально.
Буду благодарен за советы.
С уважением,
medium
Попробуйте завернуть код в invokeLater.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
SwingUtilities.invokeLater(new Runnable(){
public void run(){
 Rectangle rect = table.getCellRect(iRowPos, iRowPos, true);  
        Point pt = viewport.getViewPosition();
        rect.setLocation(rect.x-pt.x, rect.y-pt.y);
        table.scrollRectToVisible(rect);
}
}


Возможно в вашем методе состояние таблицы ещё не всегда валидное. Хотя странно. Я такой проблемы не припомню. У меня стабильно работала эта фича всегда.
...
Рейтинг: 0 / 0
11.11.2013, 12:23:37
    #38460119
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать видимой выделенную строку в JTable?
Спасибо. Всё начало стабильно работать. После исправления некоторых опечаток в коде.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать видимой выделенную строку в JTable? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]