Pregunta

Estoy usando la cinta Flamingo y la apariencia de Substance Office 2007.

Por supuesto, ahora todos los controles tienen este aspecto, incluso los de los cuadros de diálogo.

Lo que quiero es algo como en Office 2007, donde las cintas tienen su aspecto de Office 2007, pero otros controles mantienen su aspecto nativo de Vista / XP.

¿Es posible asignar a ciertos controles una apariencia diferente? ¿Quizás utilizando algún tipo de encadenamiento o una apariencia de proxy?

¿Fue útil?

Solución

Acabo de descubrir: desde Sustancia 5.0 SKIN_PROPERTY está disponible.

Permite asignar diferentes máscaras a diferentes JRootPanes (es decir, JDialog , JFrame , JInternalFrame )

Un pequeño truco: anulo JInternalFrame para eliminar el borde adicional y el panel de título para que se vea como un panel sin bordes. De esa manera, es posible crear la impresión de que las diferentes partes de un formulario / diálogo tienen un aspecto diferente.

Otros consejos

Aquí hay una biblioteca que cambiará automáticamente la apariencia. No estoy seguro de que esto se haga para cada componente de una manera diferente, pero debes echarle un vistazo. pbjar.org

Este libro debería ser útil si desea profundizar en la apariencia / java-look-and-feel-design-Guidelines-second-edition

Me gustaría ver algún ejemplo de código, si alguien puede escribirlo, no dude en comenzar.

EDIT:

En este hilo del foro Hilo encontré lo siguiente descripción

  

Swing usa un Look & amp; Siente (un PLAF).   Los PLAF no se adjuntan en un J-Frame   nivel. Se adjuntan en una máquina virtual   nivel. Es casi imposible mezclar   PLAF dentro de una aplicación. yo tengo   visto algunos intentos, todos fallaron.

Swing desafortunadamente hace muchos "psuedo-global" cosas detrás de escena. AFAIK, la única forma de hacerlo consistentemente es usar la API privada AppContext . Cada AppContext tiene su propio hilo de envío de eventos y otros "psuedo-globals".

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top