java - Eclipse文本编辑器获取光标位置

标签 java eclipse swing eclipse-plugin

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

最佳答案

假设您有编辑器的 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 控件困难很多。

您可以使用以下方法获取 ITextEditorStyledText:

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

关于java - Eclipse文本编辑器获取光标位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40732079/

相关文章:

java - 从父 Activity 获取值返回 null

java - 如何使用按钮单击 Intent 打开已安装的 Android 应用程序?

java - JDialog 的 Modality 设置为 Dialog.ModalityType.MODELESS : optionPane. getValue() 不再工作

java - 如何在java中创建可检查的 ListView

java - 在另一个类中处理 JButton 单击事件

Java编程编译jar

java - 如何从网页上的链接部署JFrame接口(interface)?

java - 从一系列分页网络调用生成 Spring Flux

eclipse - 如何在 Eclipse 中使用 antlr4?

java - 如何告诉 Eclipse 使用来自不同库的不同版本的包进行构建?