Trzeba skorzystać np. ze zdarzeń klawiatury podpiętych do konkretnych komponentów, prosty przykład:
public class SomeSwing
{
private static void createAndShowGUI() {
JFrame frame = new JFrame("HelloWorldSwing");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(null);
JTextField textField = new JTextField();
textField.addKeyListener(new SomeKeyboardAction());
frame.getContentPane().add(textField);
textField.setBounds(10, 10, 100, 30);
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
class SomeKeyboardAction extends KeyAdapter
{
@Override
public void keyReleased(KeyEvent e)
{
System.out.println(e.getKeyChar());
}
}
Do JTextFielda (linia 11) podpięte zostaje zdarzenie zwolnienia klawisza. (Niestety nie wiem tylko do końca jak to wszystko zrealizować żeby zachowane były dobre praktyki, tak żeby nie powstawał jakiś Spaghetti-code, np. w JavieFX jest to trochę prostsze)