Im utilisant un KeyAdpater
pour obtenir les événements et la méthode addKeyListener
et fonctionne très bien. Le problème est que lorsque l'on appuie sur la touche, l'action ne s'exécute qu'une seule fois et pas tant qu'elle est pressée, après 3-4 secs en maintenant enfoncée la touche l'action se produit tout le temps ce que je veux.Java Swing: faire quelque chose pendant que la touche est pressée
Je voudrais savoir s'il y a un bon moyen de faire l'action tout le temps que la touche est pressée à partir du tout début, pas après 3-4 secondes de maintien.
Je pensais que la solution suivante, mais peut-être il y a déjà un moyen mis en œuvre pour le faire:
public abstract class MyKeyAdapter extends KeyAdapter{
private boolean isPressed = false;
private int pressedKey = 0;
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while(isPressed)
keyPressedAction(pressedKey);
}
});
@Override
public void keyPressed(KeyEvent e) {
if(!isPressed){
pressedKey = e.getKeyCode();
t.start();
}
}
@Override
public void keyReleased(KeyEvent e) {
if(isPressed && e.getKeyCode()==pressedKey)}
isPressed = false;
}
public abstract void keyPressedAction(int key);
}
cela pourrait être possible avec ...., mais pourquoi prendre la peine +1 – mKorbel
@Pete J'ai essayé ce code de bas en haut et vice versa, je peux » t trouvé des mots en comparant ..., jusqu'à votre allée, aaaach – mKorbel