在没有html的java JTextPane中显示链接

时间:2009-07-29 01:03:52

标签: java html swing jeditorpane jtextpane

我需要将来自源的文本作为纯文本并将其显示在JTextPane或JEditorPane中。源文本不是HTML,但将包含方括号之间的URL,这些URL需要显示并用作超链接。

我考虑将窗格的内容类型设置为text / html并在html标记中包含url但最终忽略了换行符,这是一件坏事,我不知道如何更换换行符带有“<br/>”的字符。有没有一个简单的wat来做到这一点?

如果这样做意味着扫描整个字符串不会更好地自定义文本的显示方式吗?

所以我也考虑了在this thread中制作我自己的EditorKit的路线,如starturtle提及,但他没有解释如何做到这一点。我查看了this article中的代码,但看起来很多工作,这是我应该采取的路线吗?

有没有人这样做过。有什么建议?转换为HTML或自定义显示效果更好吗?

1 个答案:

答案 0 :(得分:2)

  

我不知道如何用“&lt; br /&gt;”替换换行符。有没有一个简单的wat来做到这一点?

您可以使用Java正则表达式执行此操作:

    String raw = "...";
    Pattern p = Pattern.compile("\n");
    String html = "<HTML>" + p.matcher(raw).replaceAll("<BR>") + "</HTML>" ;

我已经冒昧地为您添加HTML包装。


修改

为了它的乐趣,我采取了奥斯卡的观点,并采取了刺:

    Pattern p = Pattern.compile("\\[([^\\]]*)\\]");
    raw = p.matcher(raw).replaceAll("<a href=\"$1\">$1</a>");