簡體   English   中英

如何在Swing應用程序中使用后退和前進鼠標按鈕?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM