我在框架上有一些組件,我需要它在右按鈕單擊時作出響應。我必須使用我自己的事件。我應該延長MouseEvent
嗎?我如何在我的活動中將右鍵單擊與其他人分開?爲右鍵單擊創建我自己的事件
0
A
回答
6
不,你不會擴展 MouseEvent,而你會使用 MouseEvent。
如果這是一個Swing GUI,您可以爲組件添加一個MouseListener,然後在MouseListener的mousePressed方法中獲取傳入該方法的MouseEvent對象,獲取其modifiersEx,然後檢查是否按下了右鍵單擊:
public void mousePressed(MouseEvent mEvt) {
if ((mEvt.getModifiersEx() & MouseEvent.BUTTON3_DOWN_MASK) != 0) {
// right button has been pressed
}
}
+0
是的,謝謝。我知道解決我的問題的方式,我同意它不需要創建自定義事件,但任務不是使用Java的MouseEvent,而是創建自定義事件。 – Valaquil
5
MouseEvent
類有一個方法,允許您檢查使用了哪個鼠標按鈕。這就是所謂的getButton並返回一個值int
,你可以比較的predefined values
一個最重要的是,有一個方便的類叫做SwingUtilities
,其在使用這些領域提供了一個抽象層很好。這裏有一個方法,你會發現特別有趣:isRightMouseButton
換句話說,你不需要創建自己的MouseEvent
,一個MouseListener
實現就足夠了。這是內聯實現的一個例子,排除了不相關的細節。
new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
if(SwingUtilities.isRightMouseButton(e)){
//do what you want on right click
}
}
// other methods required by the interface
};
相關問題
- 1. TrayIcon右鍵單擊事件
- 2. CanJS右鍵單擊事件
- 3. VueJS中的右鍵單擊和右鍵單擊事件
- 4. 鼠標右鍵單擊事件右鍵單擊事件調用取消過程
- 5. VB.NET右鍵單擊事件動態創建按鈕
- 6. 在JavaScript中,我如何創建自己的鍵盤事件?
- 7. DropDownList控件右鍵單擊事件
- 8. Tkinter Treeview識別右鍵單擊事件返回以前右鍵單擊的行
- 9. 如何使用JQuery爲觸摸屏設備創建右鍵單擊事件?
- 10. 右鍵單擊鼠標事件錯誤
- 11. Datagrid +鼠標右鍵單擊事件
- 12. OpenLayers 3右鍵單擊事件
- 13. 添加右鍵單擊事件VTK
- 14. 右鍵單擊事件錯誤
- 15. 右鍵單擊事件不被識別
- 16. Angular 2右鍵單擊事件?
- 17. Eclipse RCP右鍵單擊事件
- 18. 在IE上右鍵單擊事件
- 19. 捕獲右鍵單擊事件
- 20. 將事件綁定到右鍵單擊
- 21. 右鍵單擊一個Javascript事件?
- 22. 如何捕獲右鍵單擊事件?
- 23. 創建我自己的雙擊功能
- 24. 我無法檢測Visual Studio 2015中的右鍵單擊事件
- 25. 如何將鼠標右鍵點擊事件動態創建datagridview
- 26. 創建您自己的ADDED_TO_STAGE事件
- 27. 用自己的事件創建圖表
- 28. Firefox奇怪的右鍵單擊事件冒泡行爲
- 29. 右鍵單擊
- 30. 如何爲我自己的自定義控件創建新事件?
我試過創建我自己的類(它需要通過任務)。但我完全誤導了。首先,我試圖創建擴展EventObject的類,但我不知道如何使它成爲完全右鍵單擊事件。比我想擴展MouseEvent,但我仍然無法想象如何以適當的方式做到這一點。我提醒你我必須創建自己的事件類,而不僅僅是使用java.awt.event.MouseEvent。 – Valaquil