我们有在Windows XP上使用setForeground方法的SWT应用程序,它们工作正常。但是,在Win7上运行最新的稳定SWT jar和dll似乎表明忽略了setForeground方法。我知道javadoc说它是一个暗示,但我想知道这是因为XP和7之间的某些变化,或者它是否可能是我在新的Win7安装上的系统设置。
我找到了这篇文章:How to set SWT button foreground color?,但主要答案明确表示在Windows上忽略了setForeground,这在XP中是不正确的。此外,我们的问题似乎并不局限于按钮。同样的问题也发生在群组中。
显然,通过添加一个直接操作GC的绘图侦听器以重新绘制具有适当颜色的文本来进行hacky解决方案,除了hacky之外,这是不切实际的,因为这意味着我们必须添加此侦听器我们使用按钮的数千个地方。
感谢您的帮助。
答案 0 :(得分:1)
这与您的系统设置无关。就像你猜测的那样,XP和7之间的某些东西已经发生了变化。实际上,它在XP和Vista之间发生了变化。不幸的是,除了你提到的黑客之外,你无能为力。
有关详细信息,请参阅this bug report。
答案 1 :(得分:0)
进一步调查显示,这不是XP和Windows 7之间的区别,而是经典主题与Aero或XP主题之间的区别。如果我们在XP中使用XP主题,也无法设置Button前景。