向JTextPane添加图像和文本

时间:2018-09-08 05:12:03

标签: java swing jtextpane

我使用两个语句添加了图像和文本。但是在JTextPane中,它仅显示文本。我的代码如下-

jTextPane1.insertIcon(new ImageIcon("t.png"));
jTextPane1.setText("Technology Wallpaper");

如何在jtextpane中添加图像和文本?

2 个答案:

答案 0 :(得分:1)

我怀疑setText正在替换整个文档。您可以使用JTextPane#getDocument().insertString()与ICON一起添加文本。如下所示:

    pane.insertIcon(new ImageIcon("logo.png"));
    pane.getDocument().insertString(0, "Hello World", null);

答案 1 :(得分:0)

setText会将基础Document的内容替换为您传递的文本。为了更新文本窗格,您需要将文本直接附加到文档中

Appending the text

JTextPane tp = new JTextPane();
tp.insertIcon(new ImageIcon("mySuperAwesomePictureSomewhere.jpg"));
try {
    Document doc = tp.getDocument();
    doc.insertString(doc.getLength(), "\nTruer words were never spoken", null);
} catch (BadLocationException ex) {
    ex.printStackTrace();
}
add(new JScrollPane(tp));

很显然,如果您想在图像之前插入文本,则应首先注意当前Document的长度,然后在插入图像后根据需要插入新的文本。

您可能还需要花些时间看看Using Text Components,以便更好地了解文本API的工作原理