Можете ли вы явно установить цвет фона виджета SWT Text на цвет по умолчанию? - PullRequest
2 голосов
/ 14 февраля 2012

У меня в пользовательском интерфейсе есть поле SWT Text .Если текстовое поле содержит необычное значение (как определено в моем конкретном случае использования), я установлю красный цвет фона, чтобы привлечь внимание пользователей.Если значение (текст) текстового поля меняется на нормальное значение, я бы хотел вернуть цвет фона по умолчанию, но я не вижу, что это возможно.Могу ли я явно изменить цвет фона виджета SWT Text обратно по умолчанию?

Ответы [ 2 ]

8 голосов
/ 14 февраля 2012

Попробуйте передать null для аргумента Color в setBackground:

text.setBackground(null);
1 голос
/ 14 февраля 2012

Я не думаю, что есть встроенный метод, который получает «оригинальный цвет». Я бы посоветовал сохранить поле со старым значением и возвращать его при необходимости:

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

Обратите внимание, что это будет работать, даже если в будущем вы решите изменить цвет текста в целях дизайна. Также обратите внимание, что объекту в вашей программе присваивается объект, как правило, с хорошим дизайном.

...