如何更改 SWT 进度条的颜色?

Posted

技术标签:

【中文标题】如何更改 SWT 进度条的颜色?【英文标题】:How to change color of SWT progress bar? 【发布时间】:2014-06-12 03:44:18 【问题描述】:

是否可以使用绘制侦听器更改进度条颜色?

我不想要一个初始前景色和背景色,而是希望它像正常的绿色进度条在 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));

我坚持这个要求,并被告知可以使用绘制侦听器,想知道如何!

任何帮助将不胜感激。

【问题讨论】:

SWT- How to change ProgressBar color in Windows?的可能重复 因此,如果您不想完全自己绘制进度条,则无法更改进度条的外观。如果你真的很绝望,你可以通过 SWT/AWT 桥使用JProgressBar 如果你只是使用windows(vista或以上),你可以使用ProgressBar的不同风格(红、绿、黄),可以看到here。 谢谢 Baz。我知道这些基于状态的颜色,我的应用程序旨在跨平台运行,并且需要具有前景色/背景色的白色/灰色组合。为什么我们不能使用相同的代码来根据状态将颜色更改为红色、绿色、黄色,以及我们选择的某种颜色?如果那个黑客是可能的。让我知道你的意见。谢谢 您不能使用该机制,因为这三种颜色是唯一由操作系统定义的颜色。 【参考方案1】:

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

在 Windows 环境中的大多数情况下,进度条会显示为绿色。使用setState(int state) 命令会改变进度条的“状态”,在某些系统下也会改变颜色 - 在 Windows 7 中,paused 会导致黄色和错误 结果为红色。然而,这些状态具有其他有意义的含义,如果仅仅将它们用于颜色的风格推理,用户可能会感到困惑。一般来说,你应该认为颜色是不变的。

【讨论】:

以上是关于如何更改 SWT 进度条的颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改进度条角度指令的颜色

Qt中如何改变QProgressBar中进度条的颜色?

delphi xe android 更改ProgressBar1进度条颜色

如何更改 CircularProgress 栏的颜色

怎样改变进度条的颜色?例如拷贝或下载时的进度条颜色,请具体说明怎样使用。谢谢!

如何更改进度条的位置 - 多处理