我只是调用org.eclipse.ui.forms.widgets.Hyperlink
来禁用hyperLink.setEnabled(false)
控件。
然而,之后链接看起来不像禁用控件。链接没有变灰(但我当然不能点击它)。
问题是:为什么链接没有变灰,我应该怎么做才能将已禁用的链接变灰?
答案 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)
请注意,除了Santosh的answer和Eclipse 4.3 M6之外,您还可以更轻松地恢复默认颜色,因为您现在拥有:
添加了一个新常量(SWT_COLOR_LINK_FOREGROUND),它将返回所有平台上超链接的原生颜色。