Вставить встроенные JComponents в JTextPane? - PullRequest
1 голос
/ 19 сентября 2010

Я работаю над проектом, который должен иметь возможность вставлять JComponents в JTextPane вместе с обычным текстом.В настоящее время я использую JTextPane.insertComponent (Component) для добавления JComponents, однако, кажется, что они добавляются спорадически без реальной организации.Я наконец-то понял, что он вставляет его везде, где находится карат, поэтому я попытался установить его в конце текста.Однако, когда я выполняю:

int len = txtConsole.getText().length();
txtConsole.setCaretPosition(len - 1);

, я получаю сообщение об ошибке, указывающее, что местоположение неверно.Есть ли простой или лучший способ вставить JComponents в конец последней строки JTextPane?

Кроме того, если вышеизложенное возможно, есть ли способ изменить расположение JComponent рядом с остальным текстом, например, по центру?

1 Ответ

1 голос
/ 19 сентября 2010

У меня работает следующий код:

int offset = textPane.getDocument().getLength();
textPane.setCaretPosition(offset);
textPane.insertComponent( ... );

Убедитесь, что ваш код выполняется на EDT.

Если у вас возникнут дополнительные проблемы, то опубликуйте свой SSCCE демонстрируя проблему.

...