アプリケーションで、キーボードの組み合わせで表示される非表示のダイアログを作成します(たとえば、5つのシークエントCtrl+ Shift+i)。
アプリケーション全体でキーボードの組み合わせストロークをグローバルにキャプチャするにはどうすればよいですか?
ありがとう
アプリケーションで、キーボードの組み合わせで表示される非表示のダイアログを作成します(たとえば、5つのシークエント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());
皆さん、ありがとうございました