我是JavaFX的新手,看到有不同類型的事件處理程序。 JavaEvent中的MouseEvent,ActionEvent和Event有什麼區別?JavaFX中MouseEvent,ActionEvent和Event有什麼區別?
3
A
回答
3
Event是所有事件類型的超類。
樣本事件類型有:
- KeyEvents其中,當按下一個鍵產生的。
- MouseEvents這是通過鼠標交互生成的,例如移動或按鈕點擊。
- 還有更多。
事件不一定只能由JavaFX系統生成。如果您願意,您可以發射和使用自己的custom events,但通常,大多數事件都是由JavaFX系統生成的。
ActionEvent是一種事件,通常可以更容易地編碼和響應被激活的內容。
通常會爲單個動作生成多個事件。例如,如果用鼠標單擊按鈕,除了ActionEvent之外,還可以獲得MOUSE_PRESSED,MOUSE_RELEASED和MOUSE_CLICKED事件。
如果你想響應按鈕激活,你可以聽一個MOUSE_CLICKED事件,但不建議這樣做。這是因爲還有其他方法可以激活按鈕,或者可以禁用按鈕,在這種情況下您不想對其執行操作。如果它是默認按鈕,則ENTER鍵可以觸發按鈕,或者當用戶按下按鈕時按下SPACE鍵可以激活該按鈕。當按鍵被鍵盤激活時,則沒有相關的鼠標事件,因此不建議監聽鼠標事件以進行鼠標激活。通常,您只想知道該按鈕已被激活,而不是導致該按鈕的原因,並且您不希望自己監控可能導致激活的所有事件類型,以及在事件觸發時實際發生激活的條件下。
JavaFX提供了ActionEvent,無論激活按鈕的方法如何,該按鈕都會被激活。這使您更容易編碼,因爲您需要編寫的所有內容都是button.setOnAction(event -> handleButtonAction());
。
一個ActionEvent也用於很多地方,例如在關鍵幀被激活時在動畫KeyFrame中創建特定類型的事件似乎不值得或不必要。所以ActionEvents不只是用來處理按鈕事件,而是可以在很多地方使用。
相關問題
- 1. posedge,negedge和event clk有什麼區別?
- 2. WSDL,DISCO和EVENT有什麼區別?
- 3. WPF Command和Event有什麼區別?
- 4. AKKA的Event Bus和Event Stream有什麼區別?
- 5. event-stream.through和event-stream.map之間有什麼區別
- 6. javafx SelectionMode Single和Multiple有什麼區別?
- 7. Java:JRadioButton上的ActionEvent和ItemEvent有什麼區別?
- 8. Chrome中「DOMContent Event」和DOMContentLoaded有什麼區別?
- 9. JavaFX中的ActionEvent
- 10. 有什麼區別`和$(Bash中有什麼區別?
- 11. Java將MouseEvent轉換爲ActionEvent
- 12. javaFX中Pane和stackPane之間有什麼區別?
- 13. javafx中的stackpane和root有什麼區別?
- 14. 有什麼區別? :和||
- 15. &&和||有什麼區別?
- 16. 「/」和「/ *」有什麼區別?
- 17. 有什麼區別:。!和:r!?
- 18. ==和===有什麼區別?
- 19. Appender和〜有什麼區別?
- 20. $ @和$ *有什麼區別?
- 21. is和=有什麼區別?
- 22. #.00和#。##有什麼區別?
- 23. `==`和`is`有什麼區別?
- 24. '=='和'==='有什麼區別?
- 25. /和/#/有什麼區別?
- 26. | 0和~~有什麼區別?
- 27. `&`和`ref`有什麼區別?
- 28. ==和===有什麼區別?
- 29. ==和===有什麼區別?
- 30. `{}`和`[]`有什麼區別?
您的問題被標記爲JavaFX 2,因爲您是JavaFX的新手,請確保您使用的是最新版本(當前是Java 8+),而不是過時的JavaFX 2版本。 – jewelsea