Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: GUI и Java FX приложения > работа с JScrollPane |
Автор: Foo 27.11.2006, 19:43 |
JScrollPane содерфит JTable причем видно только 1 строку. Подскажите как можно: - прокрутить вниз до упора - узнать номер видимой строки - прокрутить к указанной строке - отловить событие нажатия на верхний(нижний) треугольник хоть чтонибудь...... |
Автор: LSD 27.11.2006, 21:46 | ||
|
Автор: ShurikA 27.11.2006, 22:05 |
Чегото я не нахожу такую функцию... ![]() |
Автор: Foo 27.11.2006, 23:05 |
2 LSD : спасибо за "исчерпывающий" ответ я имел ввиду чтонибудь из того что я перечислил, скорее всего для решения моей задачи все не потребуются пытался ипользовать: Rectangle cellRect = supplementTable.getCellRect(row, col, false); scrollRectToVisible(cellRect); чтобы вниз прокрутить, но почемуто только на предпоследнюю строку прокручивает |
Автор: x82 28.11.2006, 11:26 | ||
Может стоит посмотреть в сторону JViewport? Это видимая зона компонента под JScrollPane.
А там уже по координатам... ![]() |
Автор: Foo 28.11.2006, 22:08 |
Одну, проблему я решил с помощью scrollRectToVisible. Может кто знает как узнать номер выбранной строки? Для моей задачи необходимо знать что сейчас видима последняя строка таблицы, мне нужно раздизебливать кнопку когда она становится видна, или когда скрол прокручен вниз до упора... |
Автор: LSD 28.11.2006, 22:44 |
Ответы на первые 3 вопроса это: scrollRectToVisible() + getCellRect() + getVisibleRect(). На четвертый вопрос я ответить не могу т.к. не знаю что такое верхний(нижний) треугольник. |
Автор: Foo 28.11.2006, 23:06 |
а в каком листенере мне проверять какая строка видна? |
Автор: LSD 28.11.2006, 23:25 | ||||
изменения видимой части отсеживаются так:
|
Автор: Foo 28.11.2006, 23:41 | ||
спасибо LSD, все получилось
table.getPersonTable().getVisibleRect() == table.getPersonTable().getCellRect(table.getPersonTable().getRowCount()-1, 0, true) почемуто давало false, поэтому чтобы не переопределять еквалс я взял координаты у, т.к. у меня меняется только она(высота и длина ячейки не меняется, хтоже не меняется т.к. 1 столбец) |
Автор: LSD 28.11.2006, 23:46 | ||||
Потому что надо делать так:
== сравнивает только ссылки, а equals() сравнивает содержимое. |
Автор: Foo 28.11.2006, 23:55 |
ну да, это ведь разные обьекты, но т.к. у меня меняется только у то мне всеравно |