JavaFX在光标下面显示ContextMenu

时间:2015-07-08 16:12:10

标签: javafx contextmenu javafx-8

我有一个用户可以输入的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()函数。

我想用它来自动完成。

感谢。

1 个答案:

答案 0 :(得分:0)

添加MouseListener并将最后一个位置保存在变量中:)

您可能想要使用getScreenX()和getScreenY(),目前还不确定区别。

codeArea.setOnMouseMoved(new EventHandler<MouseEvent>() {
  @Override public void handle(MouseEvent event) {
      this.cursorX = event.getX();
      this.cursorY = event.getY();
  }
});