powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать видимой выделенную строку в JTable?
6 сообщений из 6, страница 1 из 1
Как сделать видимой выделенную строку в JTable?
    #38453636
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допиливаю класс для работы в 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
Как сделать видимой выделенную строку в JTable?
    #38453697
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это по-моему лишнее. А так должно работать.
Код: java
1.
2.
        Point pt = viewport.getViewPosition();
        rect.setLocation(rect.x-pt.x, rect.y-pt.y);
...
Рейтинг: 0 / 0
Как сделать видимой выделенную строку в JTable?
    #38454078
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, спасибо, всё работает.
И не пришлось менять ни строчки кода.
Видимо, вчера загружался старый JAR из кэша.
Спасибо за ответ.
...
Рейтинг: 0 / 0
Как сделать видимой выделенную строку в JTable?
    #38454095
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает не всегда, нестабильно...
Придётся разбираться более досконально.
Буду благодарен за советы.
С уважением,
medium
...
Рейтинг: 0 / 0
Как сделать видимой выделенную строку в JTable?
    #38454117
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как сделать видимой выделенную строку в JTable?
    #38460119
medium
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Всё начало стабильно работать. После исправления некоторых опечаток в коде.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как сделать видимой выделенную строку в JTable?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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