Компоненты Swing GUI слишком плотно упакованы - PullRequest
3 голосов
/ 23 октября 2009

В приложении Java Swing, которое я сделал, мне кажется, что все компоненты слишком плотно упакованы.

В QT можно указать отступы и поля для макета.

Есть ли что-то подобное для свинга?

альтернативный текст http://img12.yfrog.com/img12/9612/screenshotscreenerconfi.png

Вот снимок экрана с моим приложением, которое у меня слишком затянуто (это? Что вы думаете?.

Спасибо.

Ответы [ 6 ]

2 голосов
/ 23 октября 2009

Посмотрите на GridBagLayoutManager . Это самый совершенный менеджер компоновки, но все может быть выполнено с ним.

Он использует GridBagConstraintObject , который имеет свойство inset, он определяет разделение на верхний, нижний, левый и правый компоненты.

пример: GridBagConstraintObject.insets.left = 20

2 голосов
/ 23 октября 2009

Вы можете использовать MiGLayout в качестве менеджера макета. Это позволяет все виды настроек, включая поля / отступы.

1 голос
/ 25 октября 2009

Начиная с Java 1.6 swing, появился новый менеджер GroupLayout , который облегчает работу такого рода.

Например, есть метод: setAutoCreateGaps () , который:

... вы добавляете два компонента в SequentialGroup, автоматически создается разрыв между двумя компонентами ...

Например:

alt text

1 голос
/ 23 октября 2009

Вы можете добиться гораздо лучшей компоновки для приведенного выше примера, используя DesignGridLayout всего за пару строк кода (по одной на строку в макете). DesignGridLayout автоматически использует правильный интервал для платформы времени выполнения.

Кроме того, я настоятельно рекомендую вам не использовать TitledBorders в вашей форме, потому что это мешает ЛЮБОМУ LayoutManager (как бы продвинутому это ни было) автоматически выравнивать различные компоненты в разных группах. Вместо этого вы можете использовать JLabel с JSeparator (есть примеры в DesignGridLayout, но это работает с любым другим LayoutManager).

0 голосов
/ 25 октября 2009

FormLayout - еще один хороший менеджер раскладки. С хорошим графическим редактором, таким как JFormDesigner , это делает создание графического интерфейса достаточно простым. JFormDesigner фактически автоматически добавляет достаточное заполнение в большинстве случаев. Я должен рекомендовать против использования GridBagLayout. Он хорошо выполняет свою работу, но очень сложен, что затрудняет его использование и обслуживание.

0 голосов
/ 23 октября 2009

Что LayoutManager вы используете? Добавить поля довольно легко, однако это зависит от конкретного используемого LayoutManager.

...