2011-11-09 126 views
1

我想使用SwingBuilder.frame()來訪問JFrame(GraphicsConfiguration),但我無法通過屬性設置它,因爲它不可用。如何使用Groovy Builders傳遞構造函數參數?如何使用SwingBuilder等構建器傳遞構造函數參數?

更新:根據要求,包括解決方案。 首先檢查FrameFactory.newInstance(builder,name,value,attrs)方法的值參數,看看它是否是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

你應該能夠在一個JFrame作爲值參數傳遞,根據SwingBuilder.frame docs;也許嘗試一下。

+0

你能否舉一個例子,因爲我不確定這對我有什麼幫助。我提供的frame()方法的值將返回值,但我仍然需要使用構造函數參數實例化該值。 –

+0

我想我的問題仍然是我對Groovy語法的不熟悉,特別是對於構建者。你在哪裏提供價值參數,作爲屬性,還是在提供的閉包中? –

+0

從其他示例中找出它。謝謝。 –

相關問題