我正在开发一个项目,需要能够将JComponents与普通文本一起插入JTextPane。目前,我正在使用JTextPane.insertComponent(Component)来添加JComponents,但是,它们似乎偶尔添加,没有真正的组织。我终于想通了它将它插入到克拉所在的任何地方,所以我尝试在文本末尾设置它。但是当我表演时:
int len = txtConsole.getText().length();
txtConsole.setCaretPosition(len - 1);
我收到错误消息,说明该位置无效。有没有一种简单或更好的方法将JComponents插入到JTextPane最后一行的末尾?
此外,如果可以实现上述目的,是否有办法更改JComponent与文本其余部分内联的位置,例如居中的内联?
答案 0 :(得分:1)
以下代码适用于我:
int offset = textPane.getDocument().getLength();
textPane.setCaretPosition(offset);
textPane.insertComponent( ... );
确保您的代码在EDT上执行。
如果您还有其他问题,请发布SSCCE来证明问题。