0
最近我閱讀了Groovy Swing Builder,我想爲menuItems添加擊鍵監聽器。我有以下代碼:在Groovy SwingBuilder中,我如何附加菜單項的按鍵?
import javax.swing.*
import groovy.swing.SwingBuilder
swing = new SwingBuilder()
menuHelper = swing.action(name: "Hello",mnemonic:'P',acclerator: 'ctrl P',keyStrokes:'ctrl P', closure : { println "Hi you have used Menu via keyStroke" })
frame = swing.frame(title : "Anto", show : true , pack : true, size :[100,100]){
panel{
menuBar {
menu('File'){
menuItem(action : menuHelper)
}
}
}
}
我創建menuHelper
action
於此目的,有針對性地menuItem
和它不是通過鍵盤輸入工作。然而,當我點擊它的工作我的菜單File
和,然後Hello
,從而打印:
//Output: Hi you have used Menu via keyStroke
我不知道我錯在哪裏。提前致謝。
雅那是筆誤......但是,爲什麼不編譯器拋出一個錯誤? – 2011-06-10 11:29:47
不,「SwingBuilder」將調用委託給一個Factory對象(在本例中爲'groovy.swing.factory.ActionFactory')。這個類從你傳入的地圖中選出它需要的參數。如果你在參數名稱中有一個錯字,並且它不是必需的,那麼它會假定你沒有指定它 – 2011-06-10 11:33:46
哦,那很好......,但你如何擁有這樣的知識?您爲Groovy閱讀哪本書? – 2011-06-10 11:41:08