我想使用 SwingBuilder.frame() 访问 JFrame(GraphicsConfiguration),但我无法通过属性设置它,因为它不可用。如何使用 Groovy Builders 传递构造函数参数?
更新:根据要求,包括解决方案。首先检查 FrameFactory.newInstance(builder, name, value, attrs) 方法的 value 参数,看它是否是 JFrame 本身。如果不是,则忽略它,并创建一个新的 JFrame。然后将其传递给 post-init 方法来处理属性。
这映射到以下语法:
builder.name(value, attrs){}
其中attrs是标准key:value格式的属性映射。
所以,用一个例子来完成:
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