我是一名 Java 开发人员,并且在 Java 中构建了相当多的 GUI 应用程序。我是 Groovy 的新手,坦率地说,我对一些问题感到困惑。
我的问题是我有以下代码。在组件放置的所有约束中,只有 JButton.CENTER 受到尊重。所有其他的都被简单地忽略了。除非我注释掉 bpanel 的所有代码,否则不会显示顶部的“面板”。我已经尝试了各种其他派生来放置组件,但都没有工作 - 一些在运行时编译和错误,而一些根本没有错误 - 就像这些 - 但没有得到尊重。这是代码。非常感谢您的任何帮助。另外,对于那些在 Groovy 中进行 GUI 工作的人,您是使用 SwingBuilder,还是像在 Java 中那样编写代码?
import java.awt.*
import javax.swing.*
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
name = "ATestGroovyGui"
builder = new SwingBuilder().edt {
frame(title: name, show: true, pack: true, defaultCloseOperation:JFrame.EXIT_ON_CLOSE) {
apanel = panel() {
gridLayout(cols: 2, rows: 2)
label(text: "These", horizontalTextPosition: JLabel.CENTER)
label(text: "are", horizontalTextPosition: JLabel.CENTER)
label(text: "four", horizontalTextPosition: JLabel.CENTER)
label(text: "labels", horizontalTextPosition: JLabel.CENTER)
constraints: BL.CENTER
}
bpanel = panel() {
borderLayout()
alabel = label(text: "alabel",
horizontalTextPosition: JLabel.CENTER,
constraints: BorderLayout.WEST)
abutton = button(text: "abutton",
actionPerformed: { alabel.text = "changed" },
horizontalTextPosition: JButton.CENTER,
constraints: BorderLayout.EAST )
constraints: BL.SOUTH
println name + " button hit"
}
}
}