私は JavaFX2.1 で宿題をしていますが、setOnKeyPressed
メソッドに問題があります。私のプログラムはピアノをシミュレートするので、ボタンをクリックするたびに音が鳴ります:「Q」は「ド」、「W」は「レ」など... (今のところ) マウス入力もあります。 、一度に複数の音符を演奏できないため、後で無効にします...
私の問題:キーを押したままにすると(もちろんマウスではなくキーボードで)、関連するイベントがループでトリガーされます...いくつかのテストを行ったところsetOnKeyPressed
、 setOnKeyReleased ではなく のみがトリガーされることに気付きました。
いくつかの回避策を実行しましたが、期待どおりの結果が得られません:
- キーが離されたかどうかを知るためにブール値を追加すると、一度に複数のキーを押す可能性が無効になります。
- サウンドが再生された後に音量をオフにする(キーを離したときに音量を元に戻す)ことは、複数のキーでも機能するようですが、マウスを押した場合に比べてサウンドの持続時間がかなり短くなります同じキーで。
助言がありますか?