2009-08-05 19 views
8

Jak mogę aplikacja Konfiguracja szerokie kluczowe słuchaczy (skróty klawiaturowe), tak, że gdy kombinacja klawiszy (np Ctrl + Przesunięcie + T) jest wciśnięty, pewna akcja jest wywoływana w aplikacji Java.Konfigurowanie aplikacji szeroko Kluczowe Słuchaczy

Wiem, że skróty klawiaturowe można ustawić JMenuBar elementów menu, ale w moim przypadku aplikacja nie ma paska menu.

Odpowiedz

17

Zapoznaj się z sekcją How To Use Key Bindings samouczka Java.

Musisz utworzyć i zarejestrować Action ze swoimi komponentu ActionMap i zarejestrować (KeyStroke, Action Nazwa) Para w jednym składnika swojej aplikacji za InputMap s. Biorąc pod uwagę, że nie masz JMenuBar, możesz po prostu zarejestrować powiązania klawiszy za pomocą najwyższego poziomu JPanel w swojej aplikacji.

Na przykład:

Action action = new AbstractAction("Do It") { ... }; 

// This is the component we will register the keyboard shortcut with. 
JPanel pnl = new JPanel(); 

// Create KeyStroke that will be used to invoke the action. 
KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T, InputEvent.CTRL_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK); 

// Register Action in component's ActionMap. 
pnl.getActionMap().put("Do It", action); 

// Now register KeyStroke used to fire the action. I am registering this with the 
// InputMap used when the component's parent window has focus. 
pnl.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(keyStroke, "Do It"); 
+0

to działa! dzięki. – n002213f

+1

Bez problemu - Możesz zaakceptować moje rozwiązanie, jeśli chcesz! (Potrzebuję punktów!). – Adamski

Powiązane problemy