2011-11-09 10 views
1

SwingBuilder.frame()を使用してJFrame(GraphicsConfiguration)にアクセスしたいのですが、使用できないため属性で設定できません。 Groovy Buildersを使用してコンストラクタパラメータを渡すにはどうすればよいですか?SwingBuilderのようなビルダーを使用してコンストラクタパラメータを渡すにはどうすればよいですか?

更新:ソリューションを含め、要求どおり。 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 

答えて

2

あなたはSwingBuilder.frame docsに応じて、値の引数としてのJFrameに渡すことができるはずです。おそらくそれを試してください。

+0

私はこれがどのように役立つか分かりませんので、例を挙げてください。私がframe()メソッドを提供する値は値を返すだけですが、コンストラクタパラメータで値をインスタンス化する必要があります。 –

+0

私の問題は、Groovyの構文、特にビルダーの経験がまだまだ不十分だと思います。 value引数、属性、または指定されたクロージャではどこに値を指定していますか? –

+0

他の例から分かります。ありがとう。 –

関連する問題