我正在用 JavaFX2.1 做作业,但我的setOnKeyPressed
方法有问题。我的程序模拟钢琴,所以每次单击按钮时它都会发出声音:“Q”是“do”,“W”是“re”等等......我还有(现在)鼠标输入,稍后将被禁用,因为我不能同时弹奏多个音符...
我的问题:如果我按住一个键(当然是在键盘上,而不是用鼠标),它的关联事件将在循环中触发......我做了几个测试,注意到只有setOnKeyPressed
触发,而不是 setOnKeyReleased。
我做了一些解决方法,但他们没有做我期望的事情:
- 添加一个布尔值以了解该键是否已被释放,从而禁用一次按下多个键的可能性。
- 播放完声音后关闭音量(并在释放键时将其恢复到其值)似乎也适用于多个键,但与按住鼠标时相比,声音的持续时间要短得多在同一把钥匙上。
有什么建议么?