You should use the key bindings API
InputMap im = getInputMap(WHEN_IN_FOCUSED_WINDOW);
ActionMap am = getActionMap();
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), "space");
am.put("space", new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
if (timer.isRunning()) {
timer.stop();
} else {
timer.start();
}
}
});
The InputMap
/ActionMap
can be applied to any component that extends from JComponent
, but in your case, I'd suggest attaching it to your PaintPane