Почему отключенная ссылка SWT не отображается серым цветом?

Я отключаю управление org.eclipse.ui.forms.widgets.Hyperlink, просто вызывая hyperLink.setEnabled(false).

Однако после этого ссылка не выглядит как отключенное управление. Ссылка не выделена серым цветом (но я, конечно, не могу нажать на нее).

Вопрос: почему ссылка не отображается серым цветом и что мне делать, чтобы неактивные ссылки стали серыми?


person Oleg Vazhnev    schedule 26.02.2010    source источник


Ответы (3)


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

person andyczerwonka    schedule 27.02.2010

Обратите внимание, что в дополнение к Santosh ответ с Eclipse 4.3 M6, вы можете легче восстановить цвет по умолчанию, так как теперь у вас есть:

Добавлена ​​новая константа (SWT_COLOR_LINK_FOREGROUND), которая возвращает исходный цвет гиперссылок на всех платформах.

Цвет ссылки SWT

person VonC    schedule 18.03.2013

Вы пытались явно установить серый передний план?

вы можете использовать следующий вспомогательный метод:

public static void setEnabled(Link link, boolean enable){
    if(link.isEnabled()!=enable){
        if(enable)
          link.setForeground(null); // resets to system's default color
        else
          link.setForeground(link.getDisplay().getSystemColor(SWT.COLOR_GRAY));
        link.setEnabled(enable);
    }
}
person Santhosh Kumar Tekuri    schedule 27.02.2010
comment
только что попробовал. это работает. но теперь мне нужно вернуть цвет, и как я могу получить цвет по умолчанию для гиперссылок? :) Я не хочу просить контроль вернуть его цвет переднего плана и сохранить его - это было бы слишком сложным решением для такой вещи, которую мы должны были иметь бесплатно. Возможно, я могу сказать, что Eclipse как-то использует серый цвет в качестве переднего плана для отключенных гиперссылок? - person Oleg Vazhnev; 27.02.2010
comment
это выглядит хорошо, но не работает для меня. В моем затмении цвет по умолчанию для включенных ссылок темно-синий и светло-синий при наведении курсора. Но если я установлю для переднего плана значение null, тогда ссылки станут черными и голубыми, когда вы наведете курсор. - person Oleg Vazhnev; 05.03.2010