Как установить значок по умолчанию для всех окон Java Swing? - PullRequest
3 голосов
/ 06 июля 2010

Как установить значок по умолчанию для всех окон Java Swing?

В противном случае я должен установить значки для каждого кадра, который я создал.

Какие у вас предложения? Простые взломы также принимаются.

много, спасибо

Обновление: лучше всего, если предложенный вами метод может оставить существующие коды создания кадров без изменений. ТНХ

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Создайте класс Abstact, который extends JFrame

В конструкторе установите ваш значок.

Создайте дочерний класс, который расширяет ваш новый Abstract Class, и вызовите super в вашем конструкторе

public abstract class MainFrame extends JFrame {
    protected MainFrame() {
        this.setIconImage(null); // Put your own image instead of null
    }
}

public class ChildFrame extends MainFrame {
    public ChildFrame() {
        super();
    }
}

Вы также можете просто создать объект из вашего нового класса

public class MainFrame extends JFrame {
    public MainFrame() {
        this.setIconImage(null); // Put your own image instead of null
    }
}

public class Frame {

    private MainFrame mainframe = new MainFrame();

    public Frame() {
        super();
    }
}
0 голосов
/ 24 ноября 2018

Для изменения значков Windows глобально без изменения старого кода я использую этот фрагмент кода

public static void fixWindowsIcons(final List<Image> iconImages) {
    PropertyChangeListener l = new PropertyChangeListener() {

        private Window prevActiveWindow;

        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            final Window o = KeyboardFocusManager.getCurrentKeyboardFocusManager()
                    .getActiveWindow();
            if (o != null && prevActiveWindow != o) {
                prevActiveWindow = o;
                List<Image> windowIcons = o.getIconImages();
                if (windowIcons == null || windowIcons.size() == 0) {
                    o.setIconImages(iconImages);
                }
            }
        }
    };
    KeyboardFocusManager.getCurrentKeyboardFocusManager()
            .addPropertyChangeListener("activeWindow", l); //$NON-NLS-1$
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...