Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Сохранить позицию JSplitPane при замене компонента


Автор: _Y_ 3.2.2020, 22:36
Имею javax.swing.JInternalFrame, разделённую сплиттером JSplitPane. В левой панели дерево JTree, вложенное в JScrollPane.

В зависимости от того, какой компонент дерева выбирает пользователь, в правую панель сплиттера вставляются разные формы. Для этого используется метод setRightComponent класса JSplitPane . Правый компонент всегда наследует от JPanel.


Проблема в том, вставление новой JPanel меняет положение сплиттера. Попытался читать его позицию методом getDividerLocation, вставлять панель, а потом восстанавливать позицию методом setDividerLocation. Не работает.

Подскажите как грамотно сохранять позицию сплиттера при замене компонентов в его панелях?

Автор: _Y_ 15.2.2020, 09:47
Решение нашёл сам, благо спешки не было. В принципе, решение изначально было правильным:
Цитата(_Y_ @  3.2.2020,  22:36 Найти цитируемый пост)
читать его позицию методом getDividerLocation, вставлять панель, а потом восстанавливать позицию методом setDividerLocation

Но метод getDividerLocation у меня стоял в неподходящем месте, в разультате запоминались несколько экзотические позиции сплиттера. Обычный баг начинающего (в моём варианте - всё забывшего) программиста.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)