Можно ли установить разные стили для разных панелей в пределах одного кадра? - PullRequest
4 голосов
/ 26 апреля 2010

Скажем, у меня есть 3 панели, добавленные к раме, и для 1-й панели я хочу установить металлический внешний вид, для 2-й панели я хочу, чтобы окна выглядели и чувствовали, для третьей панели это должен быть стиль свинга по умолчанию.

возможно ли это?

Ответы [ 4 ]

5 голосов
/ 26 апреля 2010

Класс javax.swing.UIManager, в котором внешний вид установлен , является одиночным. Одновременно может быть установлен только один.

Однако вы можете (если хотите) переопределить делегаты пользовательского интерфейса для отдельных компонентов (см. JComponent.setUI () ). Используя этот метод, вы могли бы, вероятно, взломать некоторые компоненты, которые используют делегаты пользовательского интерфейса альтернативного вида. Но в большинстве случаев они будут искать UIDefaults, установленный «реальным» внешним видом, поэтому в лучшем случае это будет плохое приближение.

1 голос
/ 26 апреля 2010

Нет, это невозможно.

0 голосов
/ 07 мая 2014

А как насчет загрузки UIManager.setLookAndFeel в другой загрузчик классов?

Разве это не сработает?

Полагаю, если это сработает, вам понадобится соединить данные между загрузчиками классов. Я думаю, что Google написал такой мост.

0 голосов
/ 11 марта 2011

На самом деле это возможно, это происходит со мной прямо сейчас. В моем классе GUI я назвал

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel")

По какой-то причине панель контейнера все еще металлическая, а все остальные компоненты - Nimbus.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...