Добавление изображения и текста в JTextPane - PullRequest
0 голосов
/ 08 сентября 2018

Я добавил изображение и текст, используя два утверждения. Но в JTextPane он показывает только текст. Мой код указан ниже -

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

Как добавить изображение и текст в jtextpane?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

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 сначала и вставить новый текст в этот момент, после того как вы вставили изображение, в зависимости от ваших потребностей

Вы также можете потратить некоторое время и взглянуть на Использование текстовых компонентов , чтобы лучше понять, как работает текстовый API

0 голосов
/ 08 сентября 2018

Я подозреваю, что setText заменяет весь документ. Вы можете использовать JTextPane#getDocument().insertString(), чтобы добавить текст вместе со значком. Примерно так:

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