2014-04-26 53 views
2

是否可以使用颜料列表器更改进度栏的颜色?如何更改SWT进度条的颜色?

我不想只是一个inital前景色和背景色,而是希望它能像Windows上正常的绿色进度条一样工作,但具有我自己的前景和背景。

我尝试下面的代码,但它不会工作

GC gc = event.gc; 
Device device=Display.getDefault(); 
Color foreground = gc.getForeground(); 
Color background = gc.getBackground(); 
gc.setForeground(device.getSystemColor(SWT.COLOR_RED)); 
gc.setBackground(device.getSystemColor(SWT.COLOR_YELLOW)); 

我坚持这一要求,并已被告知,它可能使用漆监听器,想知道如何!

任何帮助,将不胜感激。

+0

可能的重复[SWT如何更改Windows中的ProgressBar颜色?](http://stackoverflow.com/questions/4674678/swt-how-to-change-progressbar-color-in-windows) – Baz

+1

因此,没有办法改变进度条的外观,如果你不想自己画*完全*。如果你真的很绝望,你可以使用一个使用SWT/AWT桥的'JProgressBar'。 – Baz

+1

如果您只是使用windows(vista或更高版本),您可以使用'ProgressBar'(红色,绿色,黄色)的不同风格,可以在这里看到(http://www.eclipse.org/) SWT/R3_4 /图像/进展-bar.png)。 – Baz

回答

1

进度条的颜色由操作系统决定。

在Windows环境下的大多数情况下,进度条都是绿色的。使用setState(int state)命令将更改进度条的“状态”,它在某些系统下也会更改颜色 - 在Windows 7中,暂停结果为黄色,而错误结果为红色。但是,这些状态具有其他有意义的内涵,并且用户可能会将其简单地用于颜色的风格推理。一般来说,你应该考虑颜色不可更改。