代码之家  ›  专栏  ›  技术社区  ›  thehiatus

HTML样式的链接可以添加到SWT样式文本吗?

  •  7
  • thehiatus  · 技术社区  · 15 年前

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

    我觉得Eclipse在他们的代码编辑器中做到这一点,如果您按住控件并悬停在方法名称上,但我知道Eclipse Java编辑器比样式文本控件要复杂得多。

    2 回复  |  直到 15 年前
        1
  •  8
  •   Aaron Digulla    15 年前

    自从JFace3.5以来,链接有一种特殊的样式:

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

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

        2
  •  2
  •   Matthew Phillips    15 年前

    您需要将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;
      }
    }
    

    JavaDocforLineStyleListener将为您提供更多信息。

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