我有一个JTextPane,它使用自定义HTMLEditorKit在使用HTML标签时嵌入swing组件。当我单击该组件时,我希望将插入符号位置更新为该组件的位置。我可以在控件中获得焦点事件,但我不知道如何将插入符号位置设置为该组件的位置。有人知道怎么做吗?
您可以点击组件的父组件并使用parent.getBounds()
。返回的矩形是JTextPane
中的位置。使用JTextPane
的viewToModel()
方法获取坐标位置的插入符号位置
你需要在JTextPane的内容中嵌入组件的字符位置;如果没有更多的细节,我们无法猜测你是如何确定的。但是,一旦您知道了组件的字符位置,就很容易:
myTextPane.setCaretPosition(characterIndexOfEmbeddedComponent);
见:http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html setCaretPosition (int)