【问题标题】:JavaFX show ContextMenu below cursorJavaFX 在光标下方显示 ContextMenu
【发布时间】:2015-07-09 02:44:47
【问题描述】:

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

我想用它来自动完成。

谢谢。

【问题讨论】:

    标签: javafx contextmenu javafx-8


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-26
      相关资源
      最近更新 更多