1

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

我已经考虑将窗格的内容类型设置为 text/html 并在 html 标签中包围 url,但最终会忽略换行符,这是一件坏事,我不知道如何用“替换换行符” <br/>”。有没有简单的方法可以做到这一点?

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

所以我也考虑了制作我自己的 EditorKit 的路线,就像这个线程中提到的 starturtle 一样,但他没有解释如何去做。我已经查看了这篇文章中的代码,但看起来工作量很大,这是我应该采取的路线吗?

有没有人这样做过。有什么建议吗?转成html好还是自定义显示好?

4

1 回答 1

2

我不确定如何用“<br/>”替换换行符。有没有简单的方法可以做到这一点?

您可以使用 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>");
于 2009-07-29T01:45:00.080 回答