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:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); } }); }
Par contre le pianotage en clavier ne fonctionne pas avec le code suivant:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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]); } } });
https://gitlab.com/Graphics3D/MyLittleSynth
Partager