1

多くのネイティブ OS X アプリケーションには、デフォルトのオプション (青色) と別のオプション (アウトラインが青色) が最初に設定されたダイアログ ボックスがあります。これにより、ユーザーは、Enter キーとスペース キーをそれぞれ使用して、2 つの異なる一般的なオプションから選択することができます。

フォーカスされたオプション、フォーカスされていないオプション、およびデフォルトのオプションを含む OS X の 3 つのオプション ダイアログ ボックス

これを 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]);
}

フォーカスされていない 2 つのオプションと、フォーカスされている既定のオプションを含む OS X の 3 つのオプション ダイアログ ボックス

ユーザーに表示されるときにどのボタンがフォーカスされるかを微調整するためにソースを引き出してみましたJOptionPane.showOptionDialogが、ボタン自体を取得するのに問題がありました (プラグ可能なルック アンド フィールで指定されていると思うため)。 )。デフォルトのボタンとは異なるボタンをフォーカスするにはどうすればよいですか?

4

0 に答える 0