2009-11-18 79 views
0

我想改變java應用程序中的一些熱鍵,我正在使用它,似乎我使用的系統可能無法使用三個按鈕組合鍵。目前,我們的JMenuItem項目,我們設置了熱鍵,像這樣的電話:在Java(OSX)中設置三個按鈕加速鍵熱鍵

menuItem.setAccelerator(getAcceleratorKey(accelerator)); 

這裏是getAcceleratorKey方法:

private KeyStroke getAcceleratorKey(int keyCode) { 

    return KeyStroke.getKeyStroke(
        keyCode, 
        Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), 
        false); 
} 

看來鍵代碼,這種方法作爲一個參數只能用命令按下一個鍵。那麼我該如何做一些類似Command-Shift z的撤銷操作呢?我需要使用不同的課程嗎?

回答

1

KeyStroke.getKeyStroke()將修飾符作爲參數。他們的組合應該給你你想要的:

KeyStroke.getKeyStroke(keyCode, 
    java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.META_MASK);