如何减少3个摆动复选框之间的空间?

时间:2012-01-17 23:34:04

标签: java swing layout-manager grid-layout jcheckbox

我想在格式化组(图像左侧)中缩小组件之间的大小。怎么做?

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 个答案:

答案 0 :(得分:3)

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

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

您需要为面板使用不同的布局管理器。也许是一个垂直的BoxLayout。

答案 1 :(得分:2)

您可以查看Resizing a Component中讨论的可用尺寸变体。

答案 2 :(得分:0)

使用gridbaglayout,因为这样可以为权重,列或行提供权限,并设置间距和填充值。

我创建了一个包含12个框架的Swing应用程序,它们都是使用GridBagLayout制作的。

在此之前我也尝试了其他但他们都有限制。这就是GridBagLayout开始的地方。开始理解它是如何工作的有点困难,但是一旦你对它感觉到了,最好把组件放到你想要的地方。

如果你想要我给你一个用GridBagLayout创建的框架的很酷的例子。