6

JOptionPane ダイアログのボタンにホットキーとニーモニックを割り当てることは可能ですか? はい、いいえ、キャンセルのオプションを含むJOptionPane生成メッセージダイアログで、Yを押して[はい]ボタンを押し、Nを押して[いいえ]ボタンを押し、エスケープしてエスケープボタンをアクティブにできるようにしたいと思います。同様に、[OK] ボタンと [キャンセル] ボタンを含むダイアログで、Enter と Escape でそれらをアクティブにできるようにしたいと考えています。

すでにニーモニックが設定された状態で、JOptionPane のボタン オブジェクト配列に JButton を渡そうとしました。ニーモニックは機能し、ボタンはダイアログに正しく表示されますが、有効にすると正しく動作しません。最も顕著なのは、ダイアログを破棄しないことです。

ホットキーとニーモニックを JOptionPane ダイアログのボタンに追加する正しい方法は何ですか?

4

4 に答える 4

2

を作成しJOptionPane、ペインのコンポーネント (子など) をループして、コンポーネントが であるかどうかを確認しinstanceof JButton、そうであればテキストをチェックし、適切なニーモニックを設定します。

JOptionPane p = new JOptionPane();
Component[] c = p.getComponents();
于 2009-10-01T20:00:41.653 に答える
2

次のように UIManager を使用します。

UIManager.put("OptionPane.okButtonMnemonic", "79");  // for Setting 'O' as mnemonic
UIManager.put("OptionPane.cancelButtonMnemonic", "67"); // for Setting 'C' as mnemonic
于 2012-08-15T22:46:25.033 に答える