5

私はJavaを学んでいますが、まだこの小さな問題を解決できていません。

ポップアップ カレンダーは Nimbus のルック アンド フィールを使用していますが、Java のルック アンド フィールを使用するパネルとコンテナ Jtables があります。すべての GUI 画面/ウィンドウで Nimbus のルック アンド フィールを使用しようとしています。Merky は、メインに次のコードを配置して、後続のすべての画面に Nimbus のルック アンド フィールを持たせることを提案しましたが、それを機能させることができません。このコードをどこにどのように配置すればよいでしょうか?

public static void main(String args[]) {
    SA md = new OptraderSA("Copyright© 2010 Simon Andi");

    Dimension sd = Toolkit.getDefaultToolkit().getScreenSize();

    md.setLocation(sd.width/2-400/2, sd.height/2-400/2);
    md.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    /*Suggested Code*/
    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                System.out.println("CHOSEN THIS");
                break;
            } else {
                UIManager.setLookAndFeel  ("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            }
        }
    } catch (Exception e) {
        // If Nimbus is not available, you can set to another look and feel.
        // I can't get it to compile or work.
    }

}
4

3 に答える 3

13

これは、Nimbus のルック アンド フィールを有効にするために私のメイン メソッドで行うことです。

public static void main(String[] args) {
    try {
        for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (Exception e) {
        // If Nimbus is not available, fall back to cross-platform
        try {
            UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        } catch (Exception ex) {
            // Not worth my time
        }
    }
    new Controller();
}

Swing イベントのディスパッチ スレッドを開始する前に (view.setVisible(true) を呼び出す前に)、Nimbus ルック アンド フィールで UIManager を設定する必要があります。

于 2011-01-06T17:55:28.900 に答える
1

私は試してみると思います:

for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
    if ("Nimbus".equals(info.getName())) {
        UIManager.setLookAndFeel(info.getClassName());
        System.out.println("CHOSEN THIS");
        break;
    }
}
于 2011-03-23T12:08:35.697 に答える