可以将HTML样式链接添加到SWT StyledText吗?

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

我觉得Eclipse会在代码编辑器中执行此操作,如果您按住控件并将鼠标hover在方法名称上,但我知道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 = ; e.styles [i] = styleRange; } } 

LineStyleListener的javadoc将为您提供更多信息。

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