JOptionPaneのダイアログのニーモニックとホットキーを設定します
-
19-09-2019 - |
質問
これは、JOptionPaneのダイアログのボタンにホットキーやニーモニックを割り当てることは可能ですか?私は[いいえ]ボタンヒットしないように、Nをはい]ボタンを押すと、エスケープボタンをアクティブにするためにエスケープするYキーを押し、オプションはい、いいえでのJOptionPane生成されたメッセージダイアログで、できることや、キャンセルしたいと思います。同様にオーケーとキャンセルボタンが付いたダイアログで、私はそれらを有効に入り、脱出できるようにしたいと思います。
私はニーモニックでのJOptionPaneのボタンオブジェクト配列にJButtonがを渡ししようとしましたが、すでに設定してください。ニーモニックの仕事やボタンは、それらが活性化されるとしかし、彼らは適切に機能していない、ダイアログで正しく表示されます。最も著しく、彼らはダイアログを処分しないでください。
のJOptionPaneのダイアログのボタンにホットキーやニーモニックを追加するための正しい方法は何ですか?
解決
あなたは、どのコンポーネントがJOptionPane
あり、そしてかどうかをチェックするペイン(子供など)のコンポーネントを介し、ループをあなたのinstanceof JButton
を作成し、することができますので、テキストをチェックして、適切なニーモニックを設定します。
JOptionPane p = new JOptionPane();
Component[] c = p.getComponents();
他のヒント
次のように
というUIManagerの使用を確認します:
UIManager.put("OptionPane.okButtonMnemonic", "79"); // for Setting 'O' as mnemonic
UIManager.put("OptionPane.cancelButtonMnemonic", "67"); // for Setting 'C' as mnemonic
の代わりに文字列のパラメータとしてのボタンを送信
JButton button1 = new JButton( "<html>" + nextQuestion1 + "</html>");
button1.setMnemonic('a');
JButton button2 = new JButton(nextQuestion2 + "VUHU");
JButton button3 = new JButton(abort);
Object[] possibleValues = new Object[]{button1,button2,button3};
int selectedValue = showOptionDialog(owner, question, possibleValues);
所属していません StackOverflow