2012-02-13 15 views
2

私のUIにはSWT Textフィールドがあります。テキストフィールドに異常な値が含まれている場合(私の特定のユースケースで決まる)、ユーザーの注意を引くために背景色を赤に設定します。テキストフィールドの値(テキスト)が通常の値に変更された場合、背景色をデフォルトに戻したいと思いますが、これが可能であるとは思われません。SWT Textウィジェットの背景色を明示的にデフォルトの色に設定できますか?

可能ですか? SWT Textウィジェットの背景色を明示的にデフォルトに戻すことはできますか?

答えて

7

setBackgroundColor引数にnullを渡して試してみてください。

text.setBackground(null); 
+0

ドキュメントから: '受信者の背景色を引数で指定された色、または引数がnullの場合はコントロールのデフォルトのシステムカラーに設定します。'この答えは間違いありません。 – p12t

1

私は「元の色」を取得する組み込みの方法があるとは思いません。これは将来的にあなたが設計目的のテキストの色を変更することを決定した場合でも動作します

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

お知らせ:私は何を示唆していると、古い値を持つフィールドを維持し、必要なときにそれを返しています。また、プログラム内のエンティティにオブジェクトを与えることは、通常、オブジェクトのデザインが優れていることに注意してください。

関連する問題