7

我知道 SWT 有一个 Link 类来创建 HTML a href 样式链接作为小部件,但我试图找到一种方法来使 StyledText 控件中的某些文本出现并用作链接。

如果您按住控件并将鼠标悬停在方法名称上,我觉得 Eclipse 会在他们的代码编辑器中执行此操作,但我知道 Eclipse Java 编辑器比 StyledText 控件复杂得多。

4

2 回答 2

8

从 JFace 3.5 开始,链接有一种特殊的样式:

styleRange.underlineStyle = SWT.UNDERLINE_LINK;
styleRange.data = "http://www.google.com/";

这使得识别链接变得更加简单,并且您可以将 URL 存储在样式中。至于自动查找链接,只需http://[^ ]在获取的行中查找模式(链接中不允许有空格)并添加样式即可。

于 2010-01-01T20:07:03.660 回答
2

您需要将 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 将为您提供更多信息。

要添加点击行为,您需要更多逻辑:如果有帮助,我还可以粘贴一些代码,用于在 StyledText 小部件中自动添加 HTML 样式的可点击链接 URL。

于 2009-10-28T05:32:08.457 回答