KeyReleased et MouseReleased
Bonjour,
J'ai un petit souci avec l'interface graphique que je développe pour un synthé digital. Outre les soucis d'algorithme.
J'ai prévu le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| for (int i = 0; i < buttons.length; i++) {
buttons[i].setOnMousePressed(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
playNote(event.getSource());
}
});
buttons[i].setOnMouseReleased(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
stopNote(event.getSource());
}
});
buttons[i].setOnTouchPressed(new EventHandler<TouchEvent>() {
@Override
public void handle(TouchEvent event) {
playNote(event.getSource());
}
});
buttons[i].setOnTouchReleased(new EventHandler<TouchEvent>() {
@Override
public void handle(TouchEvent event) {
stopNote(event.getSource());
}
});
} |
Je ne sais pas si le TouchPressed fonctionne car je n'ai pas d'écran tactile. En tout cas avec le souris c'est ok.
Par contre le pianotage en clavier ne fonctionne pas avec le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
titledPanes[0].setOnKeyPressed(event -> {
for (int i = 0; i < buttons.length; i++) {
if (event.getCode().equals(keycode[i])) {
playNote(buttons[i]);
}
}
});
titledPanes[0].setOnKeyReleased(event -> {
for (int i = 0; i < buttons.length; i++) {
if (event.getCode().equals(keycode[i])) {
stopNote(buttons[i]);
}
}
}); |
L'enfoncement des touches ne fonctionne pas bien: c'est le même comportement que pour un "KeyTyped" avec une méthode qui se lance toutes les x millisecondes. Le KeyReleased ne fonctionne pas du tout.
https://gitlab.com/Graphics3D/MyLittleSynth