0

こんにちは、確認ダイアログと同じルック アンド フィールを提供し、背景色を赤に設定するサンプル プログラムを作成しました。しかし、オプションの背景色がデフォルトの色として表示され、赤では表示されないという問題が何であるかわかりません。また、すべてのプラットフォームで同じルック アンド フィールの確認ダイアログが必要です。

これが私が書いたコードです。問題を解決するのを手伝ってください

public class JOptionPaneBackground {

public static void main(String[] args) throws Exception {
    // UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    UIDefaults uiDefaults = UIManager.getLookAndFeelDefaults();
    List<Object> keys = new ArrayList<Object>(uiDefaults.keySet());
    Collections.sort(keys, new Comparator<Object>() {
        public int compare(Object o1, Object o2) {
            return (o1.toString()).compareTo(o2.toString());
        }
    });
    for (Object key : keys) {
        System.out.println(String.format("%-40s = %s", key, uiDefaults.get(key)));
    }

    UIManager.put("OptionPane.background", Color.red);
    UIManager.put("Panel.background", Color.red);

    JOptionPane.showConfirmDialog(null, "Hello World!");
}

}

4

1 に答える 1

2

UIManager の新しいインスタンスを取得し、そのペインの color プロパティを設定する必要があると思います。

コードスニペットについては、こちらをご覧ください

このコードは、Windows マシンで問題なく動作します。

public class JOptionPaneBackground {

public static void main(String[] args) throws Exception {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

    UIManager.put("OptionPane.background", Color.RED);
    UIManager.put("Panel.background", Color.RED);

    JOptionPane.showConfirmDialog(null, "Hello World!");
}

}

于 2010-04-12T04:58:09.030 に答える