将图像和文本添加到JTextPane

问题描述 投票:0回答:2

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

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

如何将图像和文本添加到jtextpane?

java swing jtextpane
2个回答
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的工作原理


1
投票

我怀疑setText正在取代整个文件。您可以使用JTextPane#getDocument().insertString()添加文本和ICON。如下所示:

    pane.insertIcon(new ImageIcon("logo.png"));
    pane.getDocument().insertString(0, "Hello World", null);
© www.soinside.com 2019 - 2024. All rights reserved.