1

我正在开发一个项目,该项目需要能够将 JComponents 以及普通文本插入到 JTextPane 中。目前,我正在使用 JTextPane.insertComponent(Component) 添加 JComponent,但是,它们似乎是零星添加的,没有真正的组织。我终于发现它在克拉所在的任何地方都插入了它,所以我尝试将它设置在文本的末尾。但是,当我执行时:

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

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

此外,如果上述可能,有没有办法改变 JComponent 与文本的其余部分内联的位置,例如居中内联?

4

1 回答 1

1

以下代码适用于我:

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

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

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

于 2010-09-19T04:48:02.030 回答