タグ

ブックマーク / nodamushi.hatenablog.com (2)

  • JavaFXで柔軟なキーバインドを作ろうとしたけど挫折した話 - プログラムdeタマゴ

    動機と目的 みなさんはキーボード何使ってますか?私は東プレのRealForceを………という話ではなくて、JISキーボードですか?USキーボードですか? US!US!なギーク(笑)には関係ない話ですが、私はJISキーボードです。前の研究室はUSキーボードだったので両方使えますが、JISのがしっくりきます。 で、JISは世界の標準ではないので、色々問題起こります。 「Ctrl+@」 このキー操作を定義しようとしたときに問題が発生しました。我々JIS民は@って@を押せば出るんですよ。でも世界民はShift+2なんですよね。で、世界民はJIS民が@と呼ぶキーは[と呼ぶんですよね。 なるほど、じゃぁ、JavaFXも@は[と呼ぶから困ると私は言いたいのか。残念ながらもっと面倒で、何故か`と判定されました。KeyCodeにATって定義されてるくせに… これだと、ユーザーが柔軟にキーバインドを定義するよ

    JavaFXで柔軟なキーバインドを作ろうとしたけど挫折した話 - プログラムdeタマゴ
  • KeyEventを全部横取りする - プログラムdeタマゴ

    今更だけども、ようやくKeyEventをフォーカスのあるコンポーネントに関係なくアプレットでも奪取する方法が分かったので、メモ。 Toolkitを使って奪取する方法なら知ってたんだけど、これはアプレットじゃ使えないから困ってた。 KeyEventを横取りするにはKeyboardFocusManagerにKeyEventDispatcherを登録することで可能になる。なおKeyEventPostProcessorを登録すると一通りイベント処理が終わった後のイベントを横取りできる。 KeyboardFocusManagerはKeyboarFocusManager.getCurrentKeyboardFocusManager()で取得できる。 奪取することで何が出来るかって? まず、例えばコンポーネントに依存しないショートカットキーを作ることとか出来るよね。 つぎに、先に奪取することでイベントを

    KeyEventを全部横取りする - プログラムdeタマゴ
  • 1