Изменение размера только одной части компонентов Java Swing - PullRequest
0 голосов
/ 12 апреля 2011

В моем приложении Java Swing у меня есть два компонента. С левой стороны находится навигация (JList), а с правой стороны - JTable. Я хотел бы оставить возможность увеличить размер окна, не увеличивая размер обоих компонентов.

Пропорция 50/50 сохраняется через всю калибровку. Я использую GridLayout. Коренится ли это поведение в LayoutManager или это свойство должно быть установлено?

Ответы [ 3 ]

2 голосов
/ 12 апреля 2011

Из того, что я знаю, менеджер GridLayout изменяет размеры всех ячеек до одного размера. Зная это, вы можете использовать его в любом случае, просто добавив компонент, который вы хотите оставить неизменным, на панель, а затем добавьте эту панель в ячейку.

Или используйте другой менеджер компоновки, мой любимый - TableLayout, где вы можете указать, какие столбцы / строки должны заполнять пустое пространство, где остальные будут оставаться в своем предпочтительном размере.

Удачи, Боро

2 голосов
/ 12 апреля 2011

GridbagLayout позволит вам достичь этого. Тем не менее, вы также рассматривали возможность использования JSplitPane, где левая часть содержит панель навигации, а правая часть содержит таблицу? Вы можете настроить его так, чтобы все дополнительное пространство было выделено справа, вызвав setResizeWeight(0.0). Однако вы по-прежнему сохраняете гибкость, позволяя пользователю вручную изменять размер области навигации, если это необходимо. У вас также есть возможность полностью скрыть панель навигации, вызвав setOneTouchExpandable(true) на разделенной панели.

1 голос
/ 12 апреля 2011

Предложение: не используйте GridLayout.Вместо этого используйте другие макеты, такие как Borderlayout или GridBagLayout или комбинацию макетов.Например, если вы используете BorderLayout, вы можете разместить JTable BorderLayout.CENTER и JList в одной из других позиций.Или, если вы используете GridBagLayout, то правильная установка значений веса и веса GridBagConstraint и значений заливки (только вы знаете, что вы хотите в данный момент) позволят выборочное увеличение компонентов, добавляемых в контейнер.

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