JButtonはスペースバーを押してJButtonをクリックすることを検討します(ここではJButtonにフォーカスがあると仮定します)。彼らはスペースバーを押すのを無視するようにこの動作をオフにする方法はありますか?スペースバーをトリガーするJButtonのクリックを無効にする
また、より一般的には、AbstractButtons
でこれを行う方法がありますか?
JButtonはスペースバーを押してJButtonをクリックすることを検討します(ここではJButtonにフォーカスがあると仮定します)。彼らはスペースバーを押すのを無視するようにこの動作をオフにする方法はありますか?スペースバーをトリガーするJButtonのクリックを無効にする
また、より一般的には、AbstractButtons
でこれを行う方法がありますか?
あなたは
jbutton.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "none");
を行うことによって、それを無効にすることができますこれはJRadioButton
のような、同様に他のAbstractButton
のために働くようです。 @camickrとして
は、次のように一度にすべてのJButton
のためにそれを解決することができbelow指摘:
InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
私に知らせてくれてありがとう。回答が更新されました。 – aioobe
aioobeによって与えられたリンクは、個々のボタンのためにそれを行う方法を示しています。あなたはすべてのJButtonのあなたがどうなるのためにこれをしたい場合:
InputMap im = (InputMap)UIManager.get("Button.focusInputMap");
im.put(KeyStroke.getKeyStroke("pressed SPACE"), "none");
im.put(KeyStroke.getKeyStroke("released SPACE"), "none");
あなたがチェックボックスやラジオボタンのためにそれをしたい場合は、それぞれ異なる入力マップについては、上記を繰り返す必要があります。
Enter Key and Buttonをお読みください。実際には、Enterキーが使用されたときにボタンを呼び出す方法について説明しているので、あなたが望むものの反対のことをします。しかし、なぜこのソリューションが逆に働くのかを説明するのに役立つかもしれません。
あなたの質問はボタンの複数についてのものだと思った。いくつかのボタンがスペースバーで動作するようにするのは、とても良いUIではありません。では、なぜボタンを1つずつ変更したいのですか? – camickr