Как уменьшить пространство между 3 флажками качели? - PullRequest
4 голосов
/ 18 января 2012

Я хочу уменьшить размер между компонентами в группе Форматирование (левая сторона изображения). Как это сделать?

enter image description here

JPanel formattingGroup = createGroupWithName("Formatting");
        formattingGroup.setMinimumSize(new Dimension(250, 20));
        formattingGroup.setLayout(new GridLayout(5, 0));
        add(formattingGroup);

        final JCheckBox showSurface = new JCheckBox("Show surface");
        showSurface.setSelected(true);
        formattingGroup.add(showSurface);

        final JCheckBox showTerrain = new JCheckBox("Show terrain");
        showTerrain.setSelected(true);
        formattingGroup.add(showTerrain);

        final JCheckBox showVehicleStatus = new JCheckBox("Show vehicle status");
        showVehicleStatus.setSelected(true);
        formattingGroup.add(showVehicleStatus);

        JPanel pnl = createGroupWithName("Depth Stretch");
        formattingGroup.add(pnl);
        JSlider slider = new JSlider(0, 10);
        pnl.add(slider);

Ответы [ 3 ]

3 голосов
/ 18 января 2012

При использовании GridLayout все компоненты имеют одинаковый размер.

Вы добавляете JPanel с TitledBorder и JSlider в сетку. Поэтому флажки будут иметь ту же высоту по вертикали, что и панель.

Вам нужно использовать другой менеджер раскладки для панели. Может быть вертикальный BoxLayout.

2 голосов
/ 18 января 2012

Вы можете посмотреть доступные варианты размеров, обсуждаемые в Изменение размера компонента .

0 голосов
/ 18 января 2012

Используйте gridbaglayout, потому что это дает вам возможность задавать веса столбцам или строкам и устанавливать значения пробелов и отступов.

Я создал приложение Swing, которое содержит 12 фреймов, и все они сделаны с помощью GridBagLayout.

Я также пробовал другие до этого, но у всех были ограничения.Вот тут-то и начинается GridBagLayout. Начать понимать, как он работает, немного сложнее, но как только вы почувствуете это, лучше всего получить компоненты там, где вы хотите.

Если вы хотите, чтобы яЯ приведу вам отличный пример рамки, созданной с помощью GridBagLayout.

...