Java SWT Изменение цвета текста, когда в поле со списком setEnabled () установлено значение false - PullRequest
3 голосов
/ 30 июня 2011

Когда я использую setEnabled () в выпадающих списках (и его значение равно false), мне интересно, как я могу изменить цвет текста, чтобы он был черным, а не серым. Людям, для которых я и сам занимаюсь разработкой программного обеспечения, слишком трудно читать, и я не могу найти способ получить доступ к цвету текста. Исправить текстовые компоненты было легко, так как мне просто пришлось использовать setEditable (), который не окрашивал текст в серый цвет, но нет метода setEditable (), доступного для комбинированных списков в SWT.

Чтобы уточнить, я попытался переопределить метод, но он не будет использовать мой метод, вместо этого он использует унаследованный метод ниже ...

public void setEnabled (boolean enabled) {
    checkWidget ();
    /*
    * Feature in Windows.  If the receiver has focus, disabling
    * the receiver causes no window to have focus.  The fix is
    * to assign focus to the first ancestor window that takes
    * focus.  If no window will take focus, set focus to the
    * desktop.
    */
    Control control = null;
    boolean fixFocus = false;
    if (!enabled) {
        if (display.focusEvent != SWT.FocusOut) {
            control = display.getFocusControl ();
            fixFocus = isFocusAncestor (control);
        }
    }
    enableWidget (enabled);
    if (fixFocus) fixFocus (control);
}

Я не могу найти здесь код рисования текста, и теперь я немного запутался, так как я немного больше знаком с Swing, в котором есть UIManager. в этом случае это будет выглядеть примерно так: UIManager.put ("ComboBox.disabledText", Color.black); Я не уверен, есть ли эквивалент для SWT ... Любая помощь очень ценится!

1 Ответ

3 голосов
/ 30 июня 2011

Цвет отключенного компонента - это одна из тех вещей, которая зависит от системы, поэтому изменить цвет невозможно.

Вместо этого вы можете использовать CCombo, что намного удобнее и соответствует вашим требованиям.(у отключенного есть черный цвет текста, и цвет мог быть установлен методом setForeground).Подробнее см. CCombo snippet ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...