为什么禁用的SWT链接不会变灰?

时间:2010-02-26 21:45:05

标签: eclipse swt eclipse-rcp eclipse-plugin

我只是调用org.eclipse.ui.forms.widgets.Hyperlink来禁用hyperLink.setEnabled(false)控件。

然而,之后链接看起来不像禁用控件。链接没有变灰(但我当然不能点击它)。

问题是:为什么链接没有变灰,我应该怎么做才能将已禁用的链接变灰?

3 个答案:

答案 0 :(得分:0)

您是否尝试明确设置灰色前景?

您可以使用以下帮助方法:

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);
    }
}

答案 1 :(得分:0)

只需扩展超链接并设置默认颜色即可。或者,你可以创建一个复合委托并转发接口,如果它不是太大 - 这可能更好。

答案 2 :(得分:0)

请注意,除了SantoshanswerEclipse 4.3 M6之外,您还可以更轻松地恢复默认颜色,因为您现在拥有:

  

添加了一个新常量(SWT_COLOR_LINK_FOREGROUND),它将返回所有平台上超链接的原生颜色。

SWT link color