用java显示链接';不带html的JTextPane
我需要将源中的文本作为纯文本显示在JTextPane或JEditorPane中。源文本不是HTML,但将包含方括号之间的URL,这些URL需要显示并用作超链接 我考虑过将窗格的内容类型设置为text/html,并在html标记中环绕url,但最终忽略了换行符,这是一件坏事,我不知道如何用“用java显示链接';不带html的JTextPane,java,html,swing,jeditorpane,jtextpane,Java,Html,Swing,Jeditorpane,Jtextpane,我需要将源中的文本作为纯文本显示在JTextPane或JEditorPane中。源文本不是HTML,但将包含方括号之间的URL,这些URL需要显示并用作超链接 我考虑过将窗格的内容类型设置为text/html,并在html标记中环绕url,但最终忽略了换行符,这是一件坏事,我不知道如何用“”替换换行符。有没有一个简单的方法 如果这样做意味着扫描整个字符串,那么定制文本的显示方式不是更好吗 所以我也考虑了制作我自己的编辑的路线,就像《星际龟》中提到的那样,但他没有解释怎么做。我已经在中查看了代码,
”替换换行符。有没有一个简单的方法
如果这样做意味着扫描整个字符串,那么定制文本的显示方式不是更好吗
所以我也考虑了制作我自己的编辑的路线,就像《星际龟》中提到的那样,但他没有解释怎么做。我已经在中查看了代码,但似乎有很多工作要做,这是我应该走的路线吗
有人这样做过吗。有什么建议吗?转换为html还是自定义显示效果更好
我不知道如何用“”替换换行符。有没有一个简单的方法 您可以使用Java正则表达式执行此操作:
String raw = "...";
Pattern p = Pattern.compile("\n");
String html = "<HTML>" + p.matcher(raw).replaceAll("<BR>") + "</HTML>" ;
String raw=“…”;
Pattern p=Pattern.compile(“\n”);
字符串html=”“+p.matcher(原始).replaceAll(“
”)+”;
我冒昧地为您添加了HTML包装
编辑: 为了好玩,我接受了奥斯卡的观点并尝试:
Pattern p = Pattern.compile("\\[([^\\]]*)\\]");
raw = p.matcher(raw).replaceAll("<a href=\"$1\">$1</a>");
Pattern p=Pattern.compile(“\\[([^\\]]*)\\]”;
原始=p.matcher(原始).replaceAll(“”);
+1@Victor:这是正确的。处理超链接的过程应该非常类似:用string replace方法替换[],但是没有用。这很有效,谢谢。