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

0 komentarzy