我在使用 SwingBuilder 运行 GridBagLayout 时遇到问题。我猜这个问题是 GridBagLayout 而不是 Groovy,所以我认为这在 Java 中也是一样的。
我有以下简单的布局:
new SwingBuilder().edt {
frame(title: 'test', defaultCloseOperation: JFrame.EXIT_ON_CLOSE, pack: true, show: true) {
gridBagLayout()
widget(textPane(background: java.awt.Color.RED), constraints: gbc(gridx:0, gridy: 0, weightx: 0.5, weighty: 1, fill: GBC.BOTH, gridheight: GBC.REMAINDER))
widget(textPane(background: java.awt.Color.GREEN), constraints: gbc(gridx: 1, gridy: 0, weightx: 0.5, weighty: 1, fill: GBC.BOTH))
label(text: "test label", background: java.awt.Color.BLUE, opaque: true, constraints: gbc(gridx: 1, gridy: 1, weightx: 0.5, fill: GBC.BOTH))
}
}
我想要一个窗口,左侧的文本窗格正好占据窗口的 50%。在窗口的右侧(另外 50%)另一个文本窗格和下方(但只占用最小所需大小)一个标签。
上面的代码可以工作并创建我想要的窗口,但是一旦我开始在左侧文本窗格中键入,左侧将开始占用更多空间(超过 50% 的窗口)。
我怎样才能实现上述布局,所以无论在文本窗格中输入什么文本,双方都将始终为 50:50?