2010-09-19 66 views
1

我正在开发一个需要能够将JComponents插入JTextPane以及普通文本的项目。目前,我正在使用JTextPane.insertComponent(Component)添加JComponents,但是,它们似乎偶尔添加,没有真正的组织。我终于明白,它将它插入到克拉所在的位置,所以我试着在文本的末尾设置它。然而,当我执行:将内联JComponents插入到JTextPane中?

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

我得到一个错误,该位置是无效的。将JComponents插入到JTextPane的最后一行的末尾是否有一种简单或更好的方法?

另外,如果以上可能,是否有方法来改变JComponent与文本的其余部分内联的位置,例如居中内联?

回答

1

下面的代码对我的作品:

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

确保你的代码是在美国东部时间执行。

如果你还有其他问题,然后发布你的SSCCE演示问题。

+0

不幸的是,http://sscce.org/最近似乎没有反应; http://pscode.org/sscce.html是一个替代方案。 – trashgod 2010-09-19 04:53:49

+0

这似乎工作,谢谢。 – 2010-09-19 05:00:36

+0

@trashgod,谢谢。 – camickr 2010-09-19 05:06:04