我将在我的应用程序中创建一个隐藏的对话框,该对话框可以通过键盘组合(例如五个连续Ctrl++ Shift)i可见。
如何在整个应用程序上全局捕获键盘组合笔画?
谢谢
我将在我的应用程序中创建一个隐藏的对话框,该对话框可以通过键盘组合(例如五个连续Ctrl++ Shift)i可见。
如何在整个应用程序上全局捕获键盘组合笔画?
谢谢
FullScreenTest
是一个示例,展示了如何在此上下文中使用Action
和键绑定。您可以替换KeyEvent.VK_I
和相关的KeyStroke
修饰符。你的动作监听器可以记录它被触发的频率。
我通过定义一个来解决它DispatcherListener
:
class DispatcherListener implements KeyEventDispatcher{
private int level=0;
public boolean dispatchKeyEvent(KeyEvent e) {
if(e.getID() == KeyEvent.KEY_RELEASED){
if(e.isControlDown() && e.isShiftDown()){
if(this.level==0 && e.getKeyCode()==KeyEvent.VK_S){
level++;
}else if(this.level==1 && e.getKeyCode()==KeyEvent.VK_H){
level++;
}else if(this.level==2 && e.getKeyCode()==KeyEvent.VK_O){
level++;
}else if(this.level==3 && e.getKeyCode()==KeyEvent.VK_W){
level=0;
this.showHiddenWindow((JFrame)SwingUtilities.getRoot(e.getComponent()));
}else{
level=0;
}
//System.out.println( "level: " + level );
}
}
return false;
}
并将其用作:
KeyboardFocusManager manager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
manager.addKeyEventDispatcher( new DispatcherListener());
谢谢你们