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