Jak zarejestrować skrót klawiaturowy
Marcin Baszczewski
Rejestrowanie skrótów klawiaturowych w Javie jest bardzo proste, sprowadza się raptem do obsługi klasy AbstractAction reprezentującej nasze zadanie oraz podczepienia jej pod obiekt typu InputMap.
W poniższym przykładzie podepniemy pod kontrolkę JTextField (Swing) skrót ctrl + S
Na początku zaimportujmy:
import javax.swing.AbstractAction;
import java.awt.event.ActionEvent;
import javax.swing.KeyStroke;
Nasze przykładowe zadanie:
AbstractAction zadanie = new AbstractAction()
{
public void actionPerformed(ActionEvent ae)
{
System.out.println("zadanie :-)");
}
};
Pora na samo stworzenie skrótu klawiaturowego:
KeyStroke skrot = KeyStroke.getKeyStroke(KeyEvent.VK_S, Event.CTRL_MASK);
InputMap mapa = text_field.getInputMap(JComponent.WHEN_FOCUSED);
mapa.put(skrot,zadanie);
text_field w powyższym kodzie reprezentuje kontrolkę JTextField.
Samo KeyStroke może zostać zdefiniowane w inny sposób:
KeyStroke.getKeyStroke("ctrl S");