【发布时间】:2023-04-11 05:53:01
【问题描述】:
我正在尝试使用 GridBagLayout 创建一个带有 Swing 的布局。
我想在 Button 旁边放置一个 ComboBox,其中 Button 具有恒定大小,并且 ComboBox 填充了行中的所有可用空间:
但是,如果我放大窗口,ComboBox 和 Button 之间会出现空白:
如何布局这个表单,让 ComboBox 填满所有空间,即使调整了窗口大小?
组件的布局代码,在 Scala 中:
layout(button) = new Constraints() {
gridx = 1
gridy = 0
anchor = GridBagPanel.Anchor.LineEnd
}
layout(comboBox) = new Constraints() {
gridx = 0
gridy = 0
fill = GridBagPanel.Fill.Horizontal
}
layout(centerPanel) = new Constraints() {
gridx = 0
gridy = 1
weighty = 1
weightx = 1
gridwidth = 2
fill = GridBagPanel.Fill.Both
}
【问题讨论】:
-
对 GUI 的该部分使用
BorderLayout。放组合。在CENTER和LINE_END中的按钮。 -
还考虑使用代码点 8594(向右箭头)作为组合中的文本..
-
谢谢,这几乎是完美的。当窗口最大化时,组合框和按钮现在居中。我可以让 ComboBox 伸展吗?
-
啊,忘记在父 GridBagLayout 上设置 Fill.Horizontal。现在可以使用了。
-
我认为它是这样的,但由于我不擅长使用 GBL,我认为最好“坚持我所知道的”,以展示顶部面板拉伸以填充可用宽度.很高兴你把事情解决了。 :)
标签: java swing scala layout-manager gridbaglayout