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
你能否舉一個例子,因爲我不確定這對我有什麼幫助。我提供的frame()方法的值將返回值,但我仍然需要使用構造函數參數實例化該值。 –
我想我的問題仍然是我對Groovy語法的不熟悉,特別是對於構建者。你在哪裏提供價值參數,作爲屬性,還是在提供的閉包中? –
從其他示例中找出它。謝謝。 –