2010-06-03 6 views

Respuesta

103

Claro. Para establecer el color de primer plano, simplemente use label.setForeground(Color.RED).

Para la cuestión de dos colores: Se podría, por ejemplo, usar HTML en su etiqueta de texto:

frame.add(new JLabel("<html>Text color: <font color='red'>red</font></html>")); 

produce

enter image description here

Otra solución es, por supuesto, utilizar dos JLabels separados, cada uno de los cuales tiene su color de primer plano.

42

puede establecer el color de un JLabel mediante la alteración de la categoría de primer plano:

JLabel title = new JLabel("I love stackoverflow!", JLabel.CENTER); 

title.setForeground(Color.white); 

Por lo que yo sé, la forma más sencilla para crear la etiqueta de dos colores que se desea es simplemente hacer dos etiquetas, y asegúrese de que se coloquen uno al lado del otro en el orden correcto.

16
JLabel label = new JLabel ("Text Color: Red"); 
label.setForeground (Color.red); 

esto debería funcionar

2

sólo quería añadir a lo @aioobe mencionado anteriormente ...

En ese enfoque se utiliza HTML para el código de color de su texto. Aunque esta es una de las formas más utilizadas para codificar por color el texto de la etiqueta, , pero no es la manera más eficiente de hacerlo ... teniendo en cuenta que cada etiqueta dará lugar a que se analice el HTML, la representación, etc. Si tiene formularios de IU grandes para mostrar, cada milisegundo cuenta para brindar una buena experiencia al usuario.

Es posible que desee ir a través de la continuación y darle una oportunidad ....

Jide OSS (encuentra enhttps://jide-oss.dev.java.net/) es una biblioteca de código abierto profesional con una muy buena cantidad de componentes Swing listo para usar. Tienen una versión mejorada de JLabel llamada StyledLabel. Ese componente resuelve su problema perfectamente ... Vea si sus licencias de código abierto se aplican a su producto o no.

Este componente es muy fácil de usar. Si desea ver una demostración de sus componentes Swing, puede ejecutar su demo de WebStart ubicada en www.jidesoft.com (http://www.jidesoft.com/products/1.4/jide_demo.jnlp). Todas sus ofertas están demostradas ... y la mejor parte es que StyledLabel se compara con JLabel (HTML y sin) en términos de velocidad.:-)

Una captura de pantalla de la prueba de Potencia se puede ver en (http://img267.imageshack.us/img267/9113/styledlabelperformance.png)

6
object.setForeground(Color.green); 

* cualquier color que desee * objeto que se ha declarado anteriormente

+6

no está mal - pero Nothin g nuevo en comparación con las respuestas anteriores :-) – kleopatra

2

Una de las desventajas del uso de HTML para etiquetas es cuando necesita escribir un programa localizable (que debería funcionar en varios idiomas). Tendrá problemas para cambiar solo el texto traducible. O tendrá que poner todo el código HTML en sus traducciones, que es muy difícil, incluso diría :) absurda

gui_en.properties:

title.text=<html>Text color: <font color='red'>red</font></html> 

gui_fr.properties:

title.text=<html>Couleur du texte: <font color='red'>rouge</font></html> 

gui_ru.properties:

title.text=<html>Цвет текста: <font color='red'>красная</font></html> 
Cuestiones relacionadas