我知道SWT有一个链接类来创建HTML A HREF链接样式的窗口小部件,但我赤身试图找到一种方法,使在StyledText控制具有一定的文字显示和功能的链接。HTML风格的链接是否可以添加到SWT StyledText?
我觉得如果你按住控制和方法名悬停在像Eclipse做到这一点在他们的代码编辑器,但我知道Eclipse Java编辑器比StyledText控制要复杂得多。
我知道SWT有一个链接类来创建HTML A HREF链接样式的窗口小部件,但我赤身试图找到一种方法,使在StyledText控制具有一定的文字显示和功能的链接。HTML风格的链接是否可以添加到SWT StyledText?
我觉得如果你按住控制和方法名悬停在像Eclipse做到这一点在他们的代码编辑器,但我知道Eclipse Java编辑器比StyledText控制要复杂得多。
由于JFace的3.5,有一个链接一个特殊的风格:
styleRange.underlineStyle = SWT.UNDERLINE_LINK;
styleRange.data = "http://www.google.com/";
这使得它更简单,以确定一个链接,你可以存储在样式的URL。至于自动查找链接,只认准模式http://[^ ]
(不允许空白中的链接),在你得到,并添加样式的线条。
你需要一个LineStyleListener添加到StyledText部件:
textField.addLineStyleListener (...);
...
public void lineGetStyle (LineStyleEvent e)
{
// alloc a set of styles for the requested line
e.styles = new StyleRange [...];
for (int i = 0; i < e.styles.length; i++)
{
StyleRange styleRange = new StyleRange();
styleRange.start = ...;
styleRange.length = ...;
styleRange.underline = true;
styleRange.foreground = <URL colour>;
e.styles [i] = styleRange;
}
}
为LineStyleListener的Javadoc会给你一些更多的信息。
要添加的点击行为,你需要一些更多的逻辑:我也可以粘贴一些代码,我们用它来自动添加HTML风格的可点击的链接的URL在StyledText部件是否会有所帮助。
谢谢!我希望看到用于自动添加链接的代码,但这很有帮助。 – thehiatus 2009-10-29 15:34:00