4

我想减小格式组(图像左侧)中组件之间的大小。这该怎么做?

在此处输入图像描述

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

3 回答 3

3

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

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

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

于 2012-01-18T00:11:57.310 回答
2

您可能会查看在调整组件大小中讨论的可用尺寸变体。

于 2012-01-18T01:16:06.473 回答
0

使用 gridbaglayout 因为这使您有机会为列或行赋予权重并设置间距和填充值。

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

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

如果你愿意,我会给你一个用 GridBagLayout 创建的框架的很酷的例子。

于 2012-01-18T19:29:44.133 回答