[英]How can I use the back and forward mouse buttons in a Swing application?
問題很簡單。 我找不到關於這個問題的很多鏈接,我找到的那些似乎並沒有避免真正的問題。 我的應用程序必須處理后退和前進鼠標按鈕的鼠標按下/釋放事件。 我怎么處理這個?
編輯:這是使用JDK 1.6 。
通過調用檢查是否檢測到其他鼠標按鈕:
MouseInfo.getNumberOfButtons();
單擊其他按鈕時,檢查是否觸發MouseEvents。 如果是這樣, MouseInfo.getButton()
返回什么?
根據MouseInfo.getButton()的javadocs:
如果安裝了帶有五個按鈕的鼠標,則此方法可能會返回以下值:
* 0 (NOBUTTON) * 1 (BUTTON1) * 2 (BUTTON2) * 3 (BUTTON3) * 4 * 5
Credit屬於原始響應者,只是添加一個即用型代碼示例,用於全局后退/前進按鈕檢測,以防其他人(JDK 1.8)
if (Toolkit.getDefaultToolkit().areExtraMouseButtonsEnabled() && MouseInfo.getNumberOfButtons() > 3) {
Toolkit.getDefaultToolkit().addAWTEventListener(event -> {
if (event instanceof MouseEvent) {
MouseEvent mouseEvent = (MouseEvent) event;
if (mouseEvent.getID() == MouseEvent.MOUSE_RELEASED && mouseEvent.getButton() > 3) {
if (mouseEvent.getButton() == 4) {
// back
} else if (mouseEvent.getButton() == 5) {
// forward
}
}
}
}, AWTEvent.MOUSE_EVENT_MASK);
}
我們如何區分“后退”和“前進”按鈕? 我們可以確定按鈕4是后退而5是前進嗎?
我不使用JDK7,也從未聽說過后退/前進按鈕。 但是我知道SwingUtilities
類有方法:
isRightMouseButton(MouseEvent)
isLeftMouseButton(MouseEvent)
isMiddleMouseButton(MouseEvent)
如果現在支持后退/前進,那么我猜他們已經添加了:
isBackMouseButton(MouseEvent)
isForwardMouseButton(MouseEvent)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.