Java » Czyli często zadawane pytania

Jak zarejestrować skrót klawiaturowy

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");