2015-07-08 5 views
0

У меня есть TextField, где пользователь может ввести. Я хочу показать ContextMenu ниже курсора, когда пользователь нажимает комбинацию клавиш Ctrl + Space.JavaFX show 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

Добавить MouseListener и сохранить последнюю позицию в переменной :)

Вы можете хотите использовать getScreenX() и getScreenY() не уверен разницы в данный момент.

codeArea.setOnMouseMoved(new EventHandler<MouseEvent>() { 
    @Override public void handle(MouseEvent event) { 
     this.cursorX = event.getX(); 
     this.cursorY = event.getY(); 
    } 
}); 
Смежные вопросы