這個book似乎暗示事件是事件案例類的一個實例。在Scala中,如何通過MouseEvent對象上的模式匹配來檢查特定組件是否被點擊?
「例如,按壓按鈕將創建的事件是以下情況下的類的一個實例: 情況下類ButtonClicked(源:按鈕)」
1)Applyin這個邏輯,確實這意味着,按下鼠標將創建的事件是以下情況下類?:
case class MousePressed(source: Component, point: java.awt.Point, modifiers: Modifiers, clicks: Int, triggersPopup: Boolean)(peer: java.awt.event.MouseEvent)
2)做圖案的物體上的匹配,以檢測是否一個特定的成分已被按下鼠標的一個實例,這是 碼是否正確?:
listenTo(mouse.clicks)
reactions += {
case MousePressed(nameOfComponent,_,_,_,_) => //some code you want to execute in response to that component being pressed //
}
3)和我同時也是正確的思想,其他參數可以進行檢查爲好,例如說
case MousePressed(nameOfComponent,point,modifier,3,true)
是個非常特殊的模式:一個特定組成部分在某個特定點上使用某個修飾符,在第三次點擊時觸發彈出窗口? (這可能不是很實用)
4)Modifier參數有什麼作用?
錯誤...這次不是真的跟着你。構造函數定義*如何創建一個對象 - 關於「多少」,它總是每個構造函數*調用*。只是對於case類,您會得到一個「免費」提取器,它可以爲您提供與類的默認構造函數相對應的可能的模式匹配 - 但這些通常是獨立的。 –
我似乎對自己感到困惑..對不起,我不知道API中的MousePressed案例類的頭文件,並且一直在圈出。這本書的引用(上圖)對我來說很困惑。我現在修改了這個問題..希望最後一塊代碼是正確的? – SonicProtein
現在更好的問題,但說實話,你可能已經得到了答案。 3)自己。我並不試圖阻止你提出問題 - 相反,我想鼓勵你不要害怕嘗試:)。 –