Могу ли я использовать два разных внешнего вида в одном приложении Swing?

StackOverflow https://stackoverflow.com/questions/446056

Вопрос

Я использую ленту Flamingo и внешний вид Substance Office 2007.

Конечно сейчас каждый элемент управления имеет такой внешний вид, даже в диалоговых окнах.

Мне нужно что-то вроде Office 2007, где ленты имеют внешний вид Office 2007, но другие элементы управления сохраняют свой родной вид Vista/XP.

Можно ли присвоить определенным элементам управления другой внешний вид?Возможно, используя какую-то цепочку или внешний вид прокси?

Это было полезно?

Решение

Я только что обнаружил: начиная с Substance 5.0 SKIN_PROPERTY доступен.

Позволяет назначать разные скины разным JRootPanes (то есть JDialog , JFrame , JInternalFrame )

Небольшая хитрость: я переопределяю JInternalFrame , чтобы удалить лишнюю рамку и область заголовка, чтобы она выглядела как панель без полей. Таким образом, можно создать впечатление, что разные части формы / диалога выглядят по-разному.

Другие советы

Вот библиотека, которая автоматически изменит внешний вид.Я не уверен, что для каждого компонента это будет сделано по-разному, но вам стоит взглянуть на это. pbjar.org

Эта книга будет полезна, если вы хотите углубиться в внешний вид и ощущения. /java-look-and-feel-design-guidelines-второе издание

Буду рад увидеть пример кода, если кто-то сможет его написать, смело приступайте.

РЕДАКТИРОВАТЬ:

В этой теме форума Нить я нашел следующее описание

В Swing используется Look & Feel (PLAF).ПЛАФ не прикрепляются на уровне JFRAME.Они прикреплены на уровне виртуальной машины.Смешивать практически невозможно PLAFs в рамках одного приложения.У меня есть видел несколько попыток, все провалились.

Swing, к сожалению, делает много «psuedo-global» quot; вещи за кадром. AFAIK, единственный способ сделать это последовательно - это использовать частный API AppContext . Каждый AppContext имеет свой собственный поток рассылки событий и другие «psuedo-globals».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top