我想在格式化组(图像左侧)中缩小组件之间的大小。怎么做?
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);
答案 0 :(得分:3)
使用GridLayout时,所有组件的大小都相同。
您正在向网格添加带有TitledBorder和JSlider的JPanel。因此,复选框将采用与该面板相同的垂直高度。
您需要为面板使用不同的布局管理器。也许是一个垂直的BoxLayout。
答案 1 :(得分:2)
您可以查看Resizing a Component中讨论的可用尺寸变体。
答案 2 :(得分:0)
使用gridbaglayout,因为这样可以为权重,列或行提供权限,并设置间距和填充值。
我创建了一个包含12个框架的Swing应用程序,它们都是使用GridBagLayout制作的。
在此之前我也尝试了其他但他们都有限制。这就是GridBagLayout开始的地方。开始理解它是如何工作的有点困难,但是一旦你对它感觉到了,最好把组件放到你想要的地方。
如果你想要我给你一个用GridBagLayout创建的框架的很酷的例子。