Нужен Java Swing эквивалент "scrollIntoView" из браузера DOM - PullRequest
4 голосов
/ 13 июня 2010

У меня есть JPanel с несколькими уровнями дочерних компонентов, также с JScrollPane.Я помещаю слушатель фокуса на некоторые дочерние компоненты, чтобы добавить некоторое поведение к этим компонентам, но я также хотел бы, чтобы этот компонент прокручивался в область просмотра JPanel, когда фокус получен.

Мой вопрос таков:у кого-нибудь есть функция общего назначения для этого, похожая на функцию DOM браузера "scrollIntoView"?Я пытался разобраться с этим, используя различные входные данные для JComponent.scrollRectToVisible, но, думаю, я не понял волшебного слова.

Заранее спасибо.

1 Ответ

4 голосов
/ 14 июня 2010

Очевидная вещь - это вызвать scrollRectToVisible на JScrollPane, который будет хорошо компилироваться, но не будет делать то, что вы хотите. Вы должны вызвать scrollRectToVisible для объекта, содержащегося в области просмотра области прокрутки. Код должен выглядеть примерно так:

java.awt.Component focusedComponent = evt.getComponent();
panel.scrollRectToVisible(focusedComponent.getBounds(null));
repaint();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...