1

我想使用 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
4

1 回答 1

2

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

于 2011-11-09T18:22:12.267 回答