我的UI中有一个SWT Text字段。如果文本字段包含异常值(由我的具体用例确定),我将背景颜色设置为红色,以引起用户注意。如果文本字段的值(文本)更改为正常值,我想将背景颜色设置回默认值,但我不认为这是可能的。
有可能吗?我可以明确地将SWT Text小部件的背景颜色更改回默认值吗?
答案 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);
}
}
请注意,即使将来您决定更改文本的颜色以用于设计目的,这也会有效。另请注意,在程序中为实体提供一个对象通常是很好的设计。