2010-08-13 23 views
7

que tienen estas barras de progreso:Ajuste de los colores de un texto JProgressBar

Sample Bars

Estoy tratando de establecer el color del texto de las barras de progreso, sin cambiar el color de fondo o el color de la barra de progreso en sí misma. Por lo que puedo decir, setForeground() establece tanto el texto como el color de la barra? ¿Hay alguna manera de hacer uno sin el otro?

Respuesta

20

Ajá - Parece que puede modificar la interfaz de usuario:

setUI(new BasicProgressBarUI() { 
     protected Color getSelectionBackground() { return Color.black; } 
     protected Color getSelectionForeground() { return Color.white; } 
    }); 

Esto fue un poco confuso, ya que el uso del primer plano y de fondo no eran intuitiva. El fondo es el color del texto cuando la barra no lo está cubriendo, el primer plano es el color del texto cuando lo está.

Aquí está el resultado final:

Colors adjusted

2

Por mensaje con UIDefaults,

ProgressBar.background is the background color 
ProgressBar.foreground is the cell color 
ProgressBar.selectionBackground is the text color outside cells 
ProgressBar.selectionForeground is the text colot INSIDE cells 

UIManager.put("ProgressBar.selectionForeground", Color.black); 
UIManager.put("ProgressBar.selectionBackground", Color.black); 
Cuestiones relacionadas