java - 在 Windows 中更改 org.eclipse.swt.widgets 背景颜色

标签 java user-interface colors swt

现在我正在尝试使用以下代码更改 org.eclipse.swt.widgets.Button 的背景颜色:

    Button sceneButton = new Button(border, SWT.TOGGLE | SWT.FLAT);  
    sceneButton.setBackground(Color.RED);

当我在 Solaris 中运行该程序时,这工作正常,但当我在 Windows 中运行代码时,这不起作用。这可能吗?如果没有,是否有某种解决方法可以让我更改背景颜色(即使“颜色”是图像),同时仍在按钮中显示文本?谢谢!

最佳答案

在 Windows 操作系统上 button.setBackGround 不能直接工作。一小段代码可以提供帮助。覆盖按钮的绘制事件,如下所示:-

-----obj是下面代码片段中的按钮名称------------

obj.addPaintListener(new PaintListener() {
@Override
    public void paintControl(PaintEvent arg0) {
    // TODO Auto-generated method stub
    obj.setBackground(display.getSystemColor(SWT.COLOR_BLACK));
    org.eclipse.swt.graphics.Pattern pattern;
    pattern = new org.eclipse.swt.graphics.Pattern(arg0.gc.getDevice(), 0,0,0,100, arg0.gc.getDevice().getSystemColor(SWT.COLOR_GRAY),230, arg0.gc.getDevice().getSystemColor(SWT.COLOR_BLACK),230);
    arg0.gc.setBackgroundPattern(pattern);
    arg0.gc.fillGradientRectangle(0, 0, obj.getBounds().width, obj.getBounds().height, true);
    }
});

关于java - 在 Windows 中更改 org.eclipse.swt.widgets 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21988996/

相关文章:

java - 如何在不耗尽堆空间的情况下使用 PDFBox 将多个小型 PDF 合并为一个?

java - 无法导入 com.google.api.client.json.jackson.JacksonFactory

java - 如何使用已声明的事实类型动态重新加载规则?

java - Netbeans GUI 和 SQL 问题

C# 将 System.ConsoleColor 转换为 System.Drawing.Color

java - 如何使用树找到最长的公共(public)子串?

jquery - 我怎样才能阻止这个 CSS Accordion 自动向下滚动?

python - 您使用哪种 IDE(如果有)构建 python GUI 项目?

visual-studio - Visual Studio字体和颜色:需要更多的可自定义性

c++ - 在QT中为QPainter设置填充颜色(不是描边颜色)