Как я могу изменить интерфейс всех компонентов определенного типа?
Как я могу установить пользовательский интерфейс для всех компонентов в моем приложении, не ссылаясь на каждый из них, используя component.setUI(...);
?
Например, у меня есть несколько пользовательских JScrollbars
на протяжении всей моей программы,
и когда вы переключаетесь на другую тему, я должен сбросить все пользовательские интерфейсы следующим образом: scrollPane.getVerticalScrollBar().setUI(new CustomScrollBarUI());
Я бы предпочел, чтобы при смене темы не приходилось искать каждый отдельно. Есть ли способ сделать это?
1 ответ
Решение
Вы можете изменить UIDefaults
в начале вашей программы:
UIDefaults uiDefaults = UIManager.getDefaults();
uiDefaults.put("ScrollBarUI", new CustomScrollBarUI());
См. Также Изменение настроек по умолчанию для пользовательского интерфейса в Java: класс UIDefaults.