1

アプリケーションでニンバス ボタン スタイルを使用したいと思います。L&Fを変更したくありません。ニンバス L&F を使用するには、ボタンの L&F のみを変更します。これを行う方法はありますか?

4

1 に答える 1

1

より良い方法があるかもしれませんが、次のユーティリティクラスが機能するはずです。

import javax.swing.JButton;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;


public class NimbusButton {
    private static LookAndFeel nimbus;

    public static JButton generateNimbusButton() {
        try {
            LookAndFeel current = UIManager.getLookAndFeel(); //capture the current look and feel

            if (nimbus == null) { //only initialize Nimbus once
                for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(info.getName())) {
                        UIManager.setLookAndFeel(info.getClassName());
                        break;
                    }
                }
                nimbus = UIManager.getLookAndFeel();
            }
            else
                UIManager.setLookAndFeel(nimbus); //set look and feel to nimbus
            JButton button = new JButton(); //create the button
            UIManager.setLookAndFeel(current); //return the look and feel to its original state
            return button;
        }
        catch (Exception e) {
            e.printStackTrace();
            return new JButton();
        }
    }
}

generateNimbusButton()メソッドは、ルックアンドフィールをNimbusに変更し、ボタンを作成してから、ルックアンドフィールをメソッドが呼び出されたときの状態に戻します。

于 2012-03-07T17:50:55.237 に答える