将内联JComponents插入JTextPane?

时间:2010-09-19 04:16:07

标签: java text insert components jtextpane

我正在开发一个项目,需要能够将JComponents与普通文本一起插入JTextPane。目前,我正在使用JTextPane.insertComponent(Component)来添加JComponents,但是,它们似乎偶尔添加,没有真正的组织。我终于想通了它将它插入到克拉所在的任何地方,所以我尝试在文本末尾设置它。但是当我表演时:

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

我收到错误消息,说明该位置无效。有没有一种简单或更好的方法将JComponents插入到JTextPane最后一行的末尾?

此外,如果可以实现上述目的,是否有办法更改JComponent与文本其余部分内联的位置,例如居中的内联?

1 个答案:

答案 0 :(得分:1)

以下代码适用于我:

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

确保您的代码在EDT上执行。

如果您还有其他问题,请发布SSCCE来证明问题。