使用HTMLEditorKit andHTMLDocument的JText窗格不会呈现照片,并且在保存文件时呈现一个破损的图标,我发现照片被加载到HTMLEditorKit中
try {
File f =im.file;
icon = new ImageIcon(f.getName());
int w = 300;
int h =300;
MutableAttributeSet attr = new SimpleAttributeSet();
attr.addAttribute(StyleConstants.NameAttribute,
HTML.Tag.IMG);
attr.addAttribute(HTML.Attribute.SRC, f.getAbsolutePath());
attr.addAttribute(HTML.Attribute.HEIGHT,
Integer.toString(h));
attr.addAttribute(HTML.Attribute.WIDTH,
Integer.toString(w));
int p = editor.getCaretPosition();
doc.insertString(p, " ", attr);
HTMLDocument docx = (HTMLDocument)editor.getDocument();
HTMLEditorKit kit=(HTMLEditorKit)editor.getEditorKit();
String filename = f.getAbsolutePath();
String preTag="<PRE>filename is : "+filename+"</PRE>";
String imageTag="<img src=\""+filename+"\"/>";
String s ="<html><img src="+filename+"></img></html>";
// kit.insertHTML(doc, doc.getLength(), s, 0, 0, HTML.Tag.IMG);
doc.insertString(editor.getCaretPosition(), "\r\n", editor.getInputAttributes());
}
````[see the broken icon[\]\[1\][1]发布于 2019-04-07 06:59:20
下面是如何使用file.toURI.toURL().toString();`完成的
try {
File f =im.file;
icon =(ImageIcon) label.getIcon();
String filename= f.toURI().toString();
int w =icon.getIconWidth();
int h =icon.getIconHeight();
MutableAttributeSet attr = new SimpleAttributeSet();
attr.addAttribute(StyleConstants.NameAttribute,HTML.Tag.IMG);
attr.addAttribute(HTML.Attribute.SRC, filename);
attr.addAttribute(HTML.Attribute.HEIGHT,
Integer.toString(h));
attr.addAttribute(HTML.Attribute.WIDTH,
Integer.toString(w));
int p = editor.getCaretPosition();
doc.insertString(p, " ", attr);
doc.insertString(editor.getCaretPosition(), "\r\n", editor.getCharacterAttributes());
} catch (Exception ex) {
}
}https://stackoverflow.com/questions/55548695
复制相似问题