2
HTML img 태그를 이미지로 렌더링하는 JEditorPane을 얻을 수 없습니다. 표시되는 것은 모두 자리 표시 자 그래픽입니다. 아래는 제 코드입니다. 미리 감사드립니다.Java JEditorPane이 이미지를 표시하지 않습니다.
내가 볼 무엇 :
내 코드 :
import java.awt.*;
import java.io.File;
import java.net.URL;
import java.util.Hashtable;
import javax.swing.*;
import javax.swing.text.html.HTMLEditorKit;
public class test
{
private static Hashtable image_cache;
public static void main(String[] args)
{
image_cache = new Hashtable();
URL img_url = null;
try
{
img_url = new File("C:/img/mypic.png").toURI().toURL();
Image img = Toolkit.getDefaultToolkit().createImage (img_url);
image_cache.put(img_url.toURI(), img);
}
catch (Exception e)
{
e.printStackTrace();
}
String html = "<html>" +
"<body>"+
"<img src=\"" + img_url.toString() + "\">" +
"</body>" +
"</html>";
JEditorPane swingbox = new JEditorPane();
swingbox.setEditorKit(new HTMLEditorKit());
swingbox.setContentType("text/html");
swingbox.setText(html);
swingbox.getDocument().putProperty("imageCache", image_cache);
JFrame frame=new JFrame("Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(swingbox);
frame.setSize(800,600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
감사합니다! 그래서 이것은 작동합니다. – SoupMonster
놀랍습니다. 실제 솔루션은 훨씬 간단합니다. 내가 제공 한 Custom ImageCache를 사용할 수도 있지만 실제 문제는 어리 석다. image_cache.put (img_url, img)이 아니어야합니다. image_cache.put (img_url.toURI(), img) ;; – ZakiMak