Изменить внешний вид и ощущение JButton - PullRequest
1 голос
/ 20 февраля 2012

Я хотел бы использовать стиль кнопки nimbus в моем приложении.Я не хочу менять L & F.Измените только L & F кнопки, чтобы использовать венчик L & F.Есть ли способ сделать это?

1 Ответ

1 голос
/ 07 марта 2012

Возможно, есть лучший способ, но у вас должен работать следующий класс утилит:

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, создает кнопку, затем изменяет внешний вид и восприятие на то, что было при вызове метода.

...