Dropbox

Java MIDPの開発ツールをWTK22からWTK25に更新しました。KKJConvを動かしてみると何故かQWERTYデバイスのエミュレータのみでキーが二重に入力されるようになりました。最初はKKJConvの隠されたバグが顕在化したのかと少々あせりました。

QWERTY以外のエミュレータでは問題ないですし、落ち着いて考えると キー入力をダブらせるバグを作るほうが難しいです。そこで簡単な切り分けを行ってみるとキーを押下するとkeyPressedと一緒にkeyRepeatedというイベントが発生していました。keyRepeatedは、その名の通りキーをホールド後一定時間が経過してからキーが離されるまで連続して発生するイベントです。それが何故かkeyPressedと同時に発生してしまい入力が重複してしまったということです。MIDPのエミュレータは以前からそうなのですがキー・リピートが(少なくとも導入時の設定では)出来ないものなので何やら怪しげです。

何はともあれQWERTYエミュレータの設定ファイル C:\WTK25\wtklib\devices\QwertyDevice\QwertyDevice.properties をのぞいてみると # keyRepeatEvents = false などという場所がありました。以前の設定ファイルには存在していなかったキーワードと思います。コメントアウトされているので有効にしてみます(行頭の#を外す)。これで目出たく余分なキーリピートの発生は抑制されました。

もう一度現象を確認すべく先のキーワードをコメントアウトしてみますが、同じ現象は発生しませんでした。ついでにkeyRepeatEvents = trueにもしてみましたが挙動は全く変わりません、キーリピートも有効にはなりませんでした。ま、とりあえず使えるようになったのでよしとします。

Trackback

no comment untill now

Add your comment now