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