En Swing, hay una propiedad para establecer un color de primer plano discapacitados JList?

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

  •  21-09-2019
  •  | 
  •  

Pregunta

En Swing, hay una propiedad para establecer un color de primer plano discapacitados JList?

Estoy usando el constructor NetBeans GUI y quiero añadir una propiedad en el fichero de propiedades de recursos que establece el color del texto en un JList a un valor predeterminado diferente cuando el JList está desactivado. Utilizando la LAF Nimbus, hay un color diferente para esto porque el texto es gris cuando está desactivado pero el negro cuando está activado. Es sólo que no quiero que sea de color gris cuando está desactivado.

El color de primer plano estándar es simplemente .foreground.

Gracias.

¿Fue útil?

Solución

El DefaultListCellRenderer extiende JLabel. En su método getListRendererComponent, que establece su estado de activación basada en la de la JList que se pasa.

El código para el pintado de texto JLabel discapacitados en BasicLabelUI hace algún trabajo para pintar el texto con un efecto de sombra. En muchas subclases, se encuentra el código que busca la propiedad "Label.disabledForeground" interfaz de usuario. Los valores predeterminados Nimbus parecen buscar "Label.disabledText".

Usted tiene un par de opciones:

  1. Puede establecer la propiedad "Label.disabledText" en el UIManager, lo que hará que todas las instancias JLabel y subclases que se deshabilitan para asumir esta coloración.
  2. Se puede crear un intérprete personalizado para su JList que pone a prueba el estado de activación de la JList y luego hace lo que el código personalizado que le gustaría - u omitir la prueba de estado habilitado por completo si usted quiere que se vea el mismo, independientemente de su habilitado estado.

Yo sugeriría que se tome el enfoque intérprete personalizado, ya que es difícil decir que el cambio de una propiedad JLabel se mostrará, como la clase se utiliza como un bloque Builing en muchos componentes diferentes.

Otros consejos

Si hay una propiedad para establecer los valores predeterminados a continuación, UIManager programa que debe demostrar la propiedad de cambiar. No veo una propiedad para el metal o Windows LAF por lo que puede indicar esto es controlado directamente en el código de interfaz de usuario.

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