2012-05-08 39 views
1

是否有KeyStroke的鼠標等效類?我正在尋找圍繞MouseEvent的某種包裝來描述哪個按鈕被推送(我可以通過SwingUtilities得到這個),並且使用了任何修飾符。這個想法是我已經通過一個監聽器捕獲了AWT鼠標事件,但隨後將這個事件處理並在虛擬世界中進行3D拾取。我想嘗試以這種方式映射鼠標綁定(類似於帶有swing控件的InputMap和ActionMap)。 KeyStroke一直是神派,任何人都知道MouseStroke或類似的東西?Java 6中Mouse的KeyStroke等價類?

回答

4

傳統上將「鼠標」定義爲最多具有三個按鈕。這也是Java支持的MouseEvent.getButton()

帶有多個按鈕的更高級鼠標通常安裝爲多個HID設備。這意味着他們安裝兩個驅動程序,一個鼠標和一個鍵盤。對於這些老鼠,你可以設置其他按鈕的含義,通常它就像按鍵(例如,移位)或雙擊。這些都是Java可以捕獲的事件,或者是MouseEvent的KeyEvent。

驅動程序中實現了更高級的功能,如「打開應用程序」或「更改DPI」。作爲設備特定的,Java沒有辦法捕捉這些事件(如果驅動程序支持這些事件,您必須爲這些事件編寫自己的本地偵聽器)。

+0

[自Java7添加了第四個和第五個按鈕](http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseEvent.html#getButton%28%29)和[ SwingUtilities保持ramained只有三個mousebuttons](http://docs.oracle.com/javase/7/docs/api/javax/swing/SwingUtilities.html)btw +1 – mKorbel

+0

這聽起來像簡短的答案是:不,有沒有MouseStroke或類似的。 – JagWire