您能否将SWT Text小部件的背景颜色明确设置为默认颜色?

时间:2012-02-13 21:06:24

标签: java eclipse widget swt

我的UI中有一个SWT Text字段。如果文本字段包含异常值(由我的具体用例确定),我将背景颜色设置为红色,以引起用户注意。如果文本字段的值(文本)更改为正常值,我想将背景颜色设置回默认值,但我不认为这是可能的。

有可能吗?我可以明确地将SWT Text小部件的背景颜色更改回默认值吗?

2 个答案:

答案 0 :(得分:8)

尝试将null参数的Color传递给setBackground

text.setBackground(null);

答案 1 :(得分:1)

我认为没有内置方法可以获得“原始颜色”。我建议保留一个旧值的字段,并在需要时返回:

class FlashingText extends Text{
    //Enter needed ctors
    private Color originalColor;
    public void markForUser(){
        originalColor = getBackground();
        setBackground(Color.RED);
    }
    public void resetColor(){
        setBackground(originalColor);
    }
}

请注意,即使将来您决定更改文本的颜色以用于设计目的,这也会有效。另请注意,在程序中为实体提供一个对象通常是很好的设计。