插入符号在JTextPane中嵌入swing组件的位置



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

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

你需要在JTextPane的内容中嵌入组件的字符位置;如果没有更多的细节,我们无法猜测你是如何确定的。但是,一旦您知道了组件的字符位置,就很容易:

myTextPane.setCaretPosition(characterIndexOfEmbeddedComponent);

见:http://docs.oracle.com/javase/7/docs/api/javax/swing/text/JTextComponent.html setCaretPosition (int)

最新更新