2009-07-08 2 views
0

Я пытаюсь создать приложение, в котором есть JSplitPane, который содержит дерево документов слева и текущую область редактора справа. Панель редактора имеет панель инструментов как часть области редактирования. Моя проблема заключается в том, что когда JFrame, содержащий JSplitPane, изменяется, как только правый компонент разделенной панели достигает размера панели инструментов, правая панель начинает «раздавливать» левую панель.Изменение размера JToolbar в JSplitPane

Мне было интересно, знал ли кто-нибудь о том, как сохранить оба компонента сплитпана в одном и том же соотношении и иметь либо панель инструментов, чтобы перестать отображать элементы внутри нее, либо иметь кнопку «больше». У меня есть панель инструментов tigris для функции «больше», работающей на панели инструментов frames, просто кажется, что она не будет изменяться в пределах JScrollpane.

Спасибо за помощь.

ответ

3

Если я правильно понял, вы хотите, чтобы панель разделения обрабатывала обе стороны с тем же приоритетом, когда родительский кадр получает размер. если это так, вы можете посмотреть на метод JSplitPane.setResizeWeight(double).

Указывает, как распределять лишнее пространство при изменении размера разделяемой панели. Значение 0 по умолчанию указывает, что правый/нижний компонент получает все лишнее пространство (левый/верхний компонент действует фиксированным), где, когда значение 1 указывает, что компонент слева/сверху получает все лишнее пространство (правый/нижний компонент действует). В частности, левый/верхний компонент получает (вес * diff) дополнительное пространство, а правый/нижний компонент получает (1 - вес) * diff дополнительное пространство.

с учетом этого, я бы дал 0.5 попробовать.

редактировать

глядя на код для BasicSplitPaneUI, потребуется минимальный размер левой и правой составляющей во внимание при его изменении размера, независимо от веса. вес по-прежнему важен, заметьте. он просто сбивается с минимума компонентов. имея в виду, попробуйте установить размер minimun на панели инструментов или прокрутку, в которой она содержится.

+0

Хмм попробовал, и ничего не изменилось. Я думаю, что проблема заключается в том, что панель инструментов должна оставаться на максимальном уровне и переходить по размеру JSplitPane и заставлять правильный компонент иметь свою ширину. спасибо за быстрый ответ. – schubySteve

+0

тоже был бы поддержан, но у меня нет репутации. Оказывается, мне просто нужно было установить минимальный размер на панели инструментов. оставил вес размера по умолчанию и все его работу. Благодарю. – schubySteve

Смежные вопросы