我有一个用户可以输入的TextField。当用户按下Ctrl + Space组合键时,我想在光标下方显示一个ContextMenu。
codeArea.setOnKeyPressed(event -> {
if( event.getCode().equals( KeyCode.SPACE ) && event.isControlDown() ) {
int cursorX = ?;
int cursorY = ?;
cm.show(codeArea, x, y);
} else {
cm.hide();
}
});
我如何获得光标当前位置?我必须将它(屏幕)XY坐标赋予show()函数。
我想用它来自动完成。
感谢。
答案 0 :(得分:0)
添加MouseListener并将最后一个位置保存在变量中:)
您可能想要使用getScreenX()和getScreenY(),目前还不确定区别。
codeArea.setOnMouseMoved(new EventHandler<MouseEvent>() {
@Override public void handle(MouseEvent event) {
this.cursorX = event.getX();
this.cursorY = event.getY();
}
});