2009-07-29 31 views
1

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

我曾考虑将窗格的内容类型设置为text/html,并在html标签中占据网址,但最终忽略了换行符,这是一件坏事,我不知道如何去替换换行符“<br/>”。有一个容易做到这一点?

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

所以我也考虑过让我自己的EditorKit像this thread中的starturtle提到的路线,但他没有解释如何去做。我查看了this article中的代码,但它似乎有很多工作,这是我应该采用的路线吗?

有没有人曾经这样做过。任何建议?转换为html还是自定义显示更好?

回答

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>"); 
+0

+1 @Victor:这是正确的。处理超链接应该非常相似:替换[]与 OscarRyz 2009-07-29 02:00:58