Отключить ScrollOnExpand на JScrollPane - PullRequest
       57

Отключить ScrollOnExpand на JScrollPane

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

Я хочу предотвратить прокрутку области прокрутки, когда содержимое в ее представлении расширяется. Есть указатели? Я пробовал поискать варианты заголовка в Google, а также читал все документы для JScrollPane, и я все еще немного сбит с толку.

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

Ответы [ 2 ]

2 голосов
/ 13 сентября 2011

для прокрутки или не для прокрутки настраивается в DefaultCaret

    DefaultCaret caret = (DefaultCaret) textPane.getCaret();
    caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE);

См. Также хорошую запись в блоге Роба о прокрутке текста

0 голосов
/ 12 сентября 2011

Обычно JScrollPane этого не делает, getViewport().getViewPosition() остается фиксированным, когда вы увеличиваете порт просмотра с кодом, подобным

JScrollPane scrollPane = ...;
scrollPane.getViewport().getView().setPreferredSize(...);
scrollPane.getViewport().revalidate();

Возможно, ваш компонент изменяется таким образом, что вы воспринимаете его как «прокрутку». В этом случае вы должны отрегулировать положение вида с помощью scrollPane.getViewport().setViewPosition(...) после увеличения вида.

...