我想使用Formatting组(图像的左侧)来减小组件之间的大小。这该怎么做?

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);

最佳答案

使用GridLayout时,所有组件的大小均相同。

您正在将带有TitledBorder和JSlider的JPanel添加到网格。因此,复选框将采用与该面板相同的垂直高度。

您需要为面板使用其他布局管理器。也许是垂直的BoxLayout。

10-05 22:20