Como ativar a ligação das teclas pressionadas?
As teclas de seta para este aplicativo precisam causar eventos de imprensa e lançamento independentemente do foco. Definir onKeyRelease true causa um evento de lançamento conforme o esperado, mas definir onKeyRelease false (código abaixo) parece não parar a repetição automática. Existe uma maneira de implementar a ligação de tecla para acionar uma vez quando a tecla de seta é pressionada e mantida?
Action right = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
...
}
};
mainPanel.getInputMap(JPanel.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
.put(KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, 0, false), "right");
mainPanel.getActionMap().put("right", right);