如何使用像SwingBuilder这样的构建器传递构造函数参数?

时间:2011-11-09 18:10:00

标签: groovy swingbuilder

我想使用SwingBuilder.frame()访问JFrame(GraphicsConfiguration),但我无法通过属性设置它,因为它不可用。如何使用Groovy Builders传递构造函数参数?

更新:根据要求,包括解决方案。 首先检查FrameFactory.newInstance(builder,name,value,attrs)方法的value参数,看它是否是JFrame本身。如果没有,则忽略它,并创建一个新的JFrame。然后将其传递给post-init方法以处理属性。

这映射到以下语法:

builder.name(value, attrs){}

其中 attrs 是标准键:值格式的属性地图。

所以,完成一个例子:


SwingBuilder swing = new SwingBuilder()
// pass the title to the valueFrame, even though we can pass as attr, for the example
JFrame valueFrame = new JFrame("Value Frame Title")
JFrame myFrame = swing.frame(valueFrame, 
                             pack:true, 
                             defaultCloseOperation:JFrame.DISPOSE_ON_CLOSE) {
  ... add your panels, etc here
}
assert myFrame == valueFrame

1 个答案:

答案 0 :(得分:2)

根据SwingBuilder.frame docs,您应该能够传入JFrame作为value参数;也许试试吧。