отображать HTML-изображение с помощью JTextPane с HTMLEditorKit

В целях тестирования я пытаюсь добавить небольшую картинку рядом с каждой строкой документа с помощью этого кода:

kit.insertHTML(doc, doc.getLength(), "<IMG SRC=file://res/picture.png>", 0, 0, HTML.Tag.IMG);

Моя проблема в том, что все, что я вижу, это то, что нет изображения, просто рамка для него: введите здесь описание изображения

Возможно, я неправильно указал путь, но, насколько я знаю, это должно быть правильно: введите здесь описание изображения

Это еще один код моего метода:

public void addText(String text, boolean timestamp) {
long timeMS = System.currentTimeMillis();
Date instant = new Date(timeMS);
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
String time = sdf.format(instant);

boolean shouldScroll = false;

try {
    HTMLDocument doc = (HTMLDocument) getChat().getDocument();
    HTMLEditorKit kit = (HTMLEditorKit) getChat().getEditorKit();
    JScrollBar vsb = getChatScroller().getVerticalScrollBar();

    BoundedRangeModel model = vsb.getModel();
    if (model.getExtent() + model.getValue() == model.getMaximum())
    shouldScroll = true;
    kit.insertHTML(doc, doc.getLength(), timestamp ? time + ": " + text : text, 0, 0, null);
    kit.insertHTML(doc, doc.getLength(), "<IMG SRC=file://res/picture.png>", 0, 0, HTML.Tag.IMG);
    if (shouldScroll)
    getChat().setCaretPosition(doc.getLength());
} catch (IOException | BadLocationException e) {
    e.printStackTrace();
}
}

Кто-нибудь знает, почему все, что я вижу, это маленькая рамка картины, я что-то забыл? Заранее спасибо! Если вам нужно больше кода, дайте мне знать!


person durchstarter    schedule 29.01.2016    source источник


Ответы (1)


Хорошо, я сделал это так:

    String filename = getClass().getClassLoader().getResource("res/Kappa.png").toString();
    String preTag="<PRE>filename is : "+filename+"</PRE>";
    String imageTag="<img src=\""+filename+"\"/>";
    kit.insertHTML(doc, doc.getLength(), preTag+imageTag, 0, 0, HTML.Tag.IMG);

Надеюсь, это поможет вам, если у вас есть такая же проблема :)

person durchstarter    schedule 29.01.2016