【发布时间】:2012-06-13 17:17:46
【问题描述】:
我已经尝试了几个小时,也搜索了网络,但根本找不到解决方案。
我需要构建一个可以读取和格式化 HTML 的文本区域(无论是 JTextArea、JTextPane 还是 JEditorPane 都无所谓)。
我知道 JEditorPane 可以通过给它一个超链接来显示 HTML,但是如果我已经得到了 HTML 文本,并且只想显示它..?如果我使用 setText() 它只显示一个白色字段。里面什么都没有。
我得到的 HTML 文本来自一封电子邮件。我明白了,使用以下代码(只是其中的一个 sn-p)
String subject = message[row].getSubject();
String from = InternetAddress.toString(message[row].getFrom());
StringBuilder body = new StringBuilder();
Multipart mp = (Multipart) message[row].getContent();
for(int i = 0; i < mp.getCount(); i++) {
BodyPart bp = mp.getBodyPart(i);
String disp = bp.getDisposition();
if(disp != null && (disp.equals(BodyPart.ATTACHMENT))) {
// Do something
} else {
body.append(bp.getContent());
}
}
EmailContent ec = new EmailContent(new JFrame(),true,from,subject,body.toString());
} catch (IOException ex) {
Logger.getLogger(MailPanel.class.getName()).log(Level.SEVERE, null, ex);
} catch (MessagingException ex) {
Logger.getLogger(MailPanel.class.getName()).log(Level.SEVERE, null, ex);
}
}
帮助?
【问题讨论】:
-
"但是如果我已经获得了 HTML 文本,并且只想显示它怎么办?"当你尝试它时发生了什么?
-
谁减去我的票?另外,我尝试阅读该内容,但并没有真正帮助。 JEditorPane 设置为执行 text/html 而不是 text/plain。当我使用 setText(htmltext) 时,它只会给我一个空白的 JEditorPane。我什至检查了传递的字符串,它很好。我不明白。
-
@AndrewThompson 它只是显示了 HTML 文本。没有按应有的方式格式化或实际显示。
-
这可能与内容类型或
JEditorPane是否可编辑有关。为了尽快获得更好的帮助,请发帖SSCCE。