我是一名Java开发人员,并在Java中完成了GUI应用程序构建。我是Groovy的新手,坦率地说,我对几点感到困惑。
我的问题是我有以下代码。在组件放置的所有约束中,只有JButton.CENTER受到尊重。所有其他人都被忽略了。顶级' apanel'除非我注释掉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"
}
}
}
答案 0 :(得分:2)
我建议您将Miglayout用于任何复杂的UI。有一点学习曲线,但以后会容易得多。 SwingBuilder很好地支持Miglayout,尽管没有太多文档或示例可用。我曾经写过several posts about Miglayout and Swingbuilder here,你可以看看。