Eclipse Text编辑器获取光标位置

时间:2016-11-22 00:52:38

标签: java eclipse swing eclipse-plugin

我正在开发一个使用eclipse插件开发环境(PDE)推荐代码的插件。现在我正在设计界面。问题是我想在eclipse编辑器中获取光标位置并在该位置打开JFrame。我试图在文档和论坛的帮助下获得该位置,并且只能获得到目前为止的偏移量,或者您可以说行和列偏移量。我想在一个代表一个位置的点(x,y)中得到它。那么任何想法如何获得光标位置?

1 个答案:

答案 0 :(得分:2)

假设您对编辑器有StyledText控件,请使用getCaretOffset来获取插入符号偏移量:

StyledText text = ... get editor styled text

int caret = text.getCaretOffset();

然后调用getLocationAtOffset以获取相对于控件的偏移量的x,y坐标:

Point point = text.getLocationAtOffset(caret);

如有必要,您可以将其转换为相对于显示器:

point = text.toDisplay(point);

请注意,Eclipse插件通常使用SWT,而不是Swing。打开JFrame比使用SWT控件要困难得多。

您可以使用以下内容获取StyledText ITextEditor

StyledText text = (StyledText)editor.getAdapter(Control.class);