Прокрутите JTree, чтобы последняя строка была в верхней части JScrollPane в Java - PullRequest
0 голосов
/ 18 февраля 2011

У меня большое JTree (много узлов), отображаемое в JScrollPane. Я бы хотел, чтобы последний узел дерева отображался в верхней части JScrollPane. Swing, по-видимому, не позволяет этого по умолчанию, показывая (полностью развернутое) JTree с последним узлом в нижней части JScrollPane. Большой палец JScrollBar касается нижней части дорожки.

Я использую метод JViewport.setViewPosition () для установки верхнего левого расположения узла дерева в верхнее левое положение в JViewport, но он отказывается сделать это, если это заставит его отображать «пробел» в нижней части дерева.

Я пытался манипулировать JViewport, устанавливая размер (.setViewSize к его старому значению + дополнительную высоту .getExtentSize ()), но он по-прежнему отказывается разрешить движению большого пальца вниз, даже если теперь он равен не в нижней части его дорожки. Я корректирую размер JViewport в обработчике событий (.addChangeListener).

Ответы [ 2 ]

1 голос
/ 18 февраля 2011

Полагаю, вы могли бы переопределить предпочтительный размер JTree, чтобы он был предпочтительным размером по умолчанию плюс размер экстента в области просмотра минус высота одной строки JTree.

0 голосов
/ 19 февраля 2011

Что если вы поместите JTree в VBox с пустым пространством внизу, а затем оберните VBox JScrollPane?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...