多くのネイティブ OS X アプリケーションには、デフォルトのオプション (青色) と別のオプション (アウトラインが青色) が最初に設定されたダイアログ ボックスがあります。これにより、ユーザーは、Enter キーとスペース キーをそれぞれ使用して、2 つの異なる一般的なオプションから選択することができます。
これを Java アプリケーションで複製できるようにしたいと考えています。次のように JOptionPane を使用すると、近いものが生成されますが、デフォルトのオプション (initialValue
パラメータとして指定) はフォーカスされており、デフォルトです。青いアウトライン (およびスペースバーで起動するボタン) は一番左のボタンにあるはずですが、そうではありません。
int showOptionPane(JFrame parent, String file) {
String[] selections = {"Save", "Cancel", "Don't Save"};
return JOptionPane.showOptionDialog(parent,
"Do you want to save changes to: " + file + "?",
"Save Work?",
JOptionPane.YES_NO_CANCEL_OPTION,
JOptionPane.PLAIN_MESSAGE,
null, selections, selections[0]);
}
ユーザーに表示されるときにどのボタンがフォーカスされるかを微調整するためにソースを引き出してみましたJOptionPane.showOptionDialog
が、ボタン自体を取得するのに問題がありました (プラグ可能なルック アンド フィールで指定されていると思うため)。 )。デフォルトのボタンとは異なるボタンをフォーカスするにはどうすればよいですか?