동일한 스윙 애플리케이션에서 두 가지 다른 모양과 느낌을 사용할 수 있습니까?

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

문제

플라밍고 리본과 물질 사무실 2007 모양과 느낌을 사용하고 있습니다.

물론 지금 모든 컨트롤은 대화 상자에있는 사람들조차도 이러한 모양과 느낌을 가지고 있습니다.

내가 원하는 것은 Ribbons가 Office 2007 모양을 가진 Office 2007에서와 같은 것입니다.

특정 컨트롤을 다른 모양과 느낌으로 할당 할 수 있습니까? 아마도 어떤 종류의 체인 또는 프록시 모양과 느낌을 사용합니까?

도움이 되었습니까?

해결책

방금 발견 : 이후 물질 5.0 그만큼 Skin_Property 사용할 수 있습니다.

다른 스킨을 다른 스킨을 할당 할 수 있습니다 JRootPanes (즉 JDialog, JFrame, JInternalFrame)

약간의 속임수 : 나는 무시합니다 JInternalFrame 여분의 테두리와 제목 창을 제거하여 테두리가없는 패널처럼 보이도록합니다. 이렇게하면 형태/대화의 다른 부분이 다른 모양을 가지고 있다는 인상을 만들 수 있습니다.

다른 팁

다음은 외관과 느낌을 자동으로 변경하는 라이브러리입니다. 나는 이것이 모든 구성 요소에 대해 다른 방식으로 수행 될 것이라고 확신하지 않지만, 당신은 그것을 살펴 봐야합니다. pbjar.org

이 책은 당신이 모양과 느낌에 깊이 빠져들고 싶다면 유용 할 것입니다. /java-look-and feel-design-guidelines-second-edition

코드 예제를 보게되어 기쁩니다. 누군가가 글을 쓸 수 있다면 자유롭게 시작하십시오.

편집하다:

이 포럼 스레드에서 다음 설명을 찾았습니다

스윙은 Look & Feel (PLAF)를 사용합니다. PLAF는 JFrame 수준에 첨부되지 않습니다. 그들은 VM 수준에 부착됩니다. 하나의 응용 프로그램 내에서 PLAF를 혼합하는 것은 거의 불가능합니다. 나는 몇 번의 시도를 보았고 모두 실패했습니다.

불행히도 스윙은 무대 뒤에서 많은 "psuedo-global"을 수행합니다. Afaik, 일관되게 수행하는 유일한 방법은 개인을 사용하는 것입니다. AppContext API. 각 AppContext 자체 이벤트 디스패치 스레드 및 기타 "Psuedo-Globals"가 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top