JTextPane中嵌入的swing组件的插入位置

时间:2013-05-16 20:17:59

标签: java swing jtextpane caret htmleditorkit

我有一个JTextPane,当使用HTML标记时,它使用自定义HTMLEditorKit来嵌入swing组件。当我单击此组件时,我希望将插入位置更新为此组件的位置。我可以在控件中获得焦点事件,但我不知道如何将插入位置设置为该组件的位置。谁知道怎么做?

2 个答案:

答案 0 :(得分:4)

您可以获取点击组件的父级并使用parent.getBounds()。返回的矩形是JTextPane中的位置。 viewToModel()使用JTextPane方法获取坐标位置的插入位置。

答案 1 :(得分:0)

您需要在JTextPane的内容中嵌入组件的字符位置;没有更多细节,没有办法猜测你将如何确定。但是,一旦你知道组件的字符位置,它就像:

一样简单
myTextPane.setCaretPosition(characterIndexOfEmbeddedComponent);

请参阅:http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html#setCaretPosition(int)