Groovy 如何使用SwingBuilder之类的生成器传递构造函数参数?

Groovy 如何使用SwingBuilder之类的生成器传递构造函数参数?,groovy,swingbuilder,Groovy,Swingbuilder,我想使用SwingBuilder.frame()访问JFrame(GraphicsConfiguration),但无法通过属性进行设置,因为它不可用。如何使用Groovy构建器传递构造函数参数 更新:根据要求,包括解决方案。 首先检查FrameFactory.newInstance(builder、name、value、attrs)方法的value参数,看看它本身是否是JFrame。否则,将忽略它,并创建一个新的JFrame。然后将其传递给post init方法来处理属性 这映射到以下语法: b

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

更新:根据要求,包括解决方案。 首先检查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

您应该能够将JFrame作为value参数传入,根据;也许可以试试。

你能举个例子吗,因为我不知道这对我有什么帮助。我在frame()方法中提供的值将只返回值,但我仍然需要使用构造函数参数实例化该值。我想我的问题仍然是我对Groovy语法,特别是对构造函数的语法缺乏经验。您在哪里提供值参数,作为属性,还是在提供的闭包中?从其他示例中可以看出。谢谢。@Spencer您能编辑您的问题以粘贴解决方案吗?我很想知道解决方案。。。你一定要走widgets的路吗?@Spencek我走错时间了!但你已经明白了;传入的类用作绑定目标。很高兴你解决了。