我是一名Java开发人员,在Java中完成了相当一部分的GUI应用程序构建。我是Groovy的新手,坦率地说,我对几点感到困惑。
我的问题是,我有以下代码。在元件放置的所有约束中,只有JButton.CENTER是有效的。所有其他的都被忽略了。顶部的'apanel‘不会显示,除非我注释掉bpanel的所有代码。我已经尝试了各种其他派生的组件放置,但没有工作-一些编译和错误在运行时,一些根本不会出错-就像这些-但没有得到尊重。下面是代码。非常提前感谢您的帮助。另外,对于那些在Groovy中使用图形用户界面的用户,您是否使用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"
}
}
} 发布于 2014-06-08 10:10:13
我建议你在任何复杂的UI上都使用Miglayout。有一点学习曲线,但稍后会容易得多。SwingBuilder很好地支持Miglayout,尽管没有太多的文档或示例可用。我曾经写过several posts about Miglayout and Swingbuilder here,你可以看看。
https://stackoverflow.com/questions/19184806
复制相似问题