繁体   English   中英

矩形上的 JavaFx KeyEvent 不起作用

[英]JavaFx KeyEvent on Rectangle doesn't work

我在GridPane上有一个Rectangle ,添加KeyEvent后,它不会触发。 这是我的代码:

    Rectangle rectangle = new Rectangle();
    rectangle.setX(500.0f); 
    rectangle.setY(200.0f); 
    rectangle.setWidth(400.0f); 
    rectangle.setHeight(300.0f); 

    //add key event
    rectangle.setOnKeyTyped(event->{
       System.out.println("TYPED - Character: "+event.getCharacter()+
    ", Code: " + event.getCode() +
     ", Text: " +event.getText());
   });

    GridPane.setRowIndex(rectangle, 0);
    GridPane.setColumnIndex(rectangle, 0);
    gridPane.getChildren().add(rectangle);

按任意键不会打印任何内容。 我的代码可能有什么问题?

问题是 Rectangle 没有焦点,并且 KeyEvents 不会在没有焦点的节点上触发。 您可以通过调用rectangle.requestFocus()来请求焦点。 似乎只需单击它就不会获得焦点,因此您必须“手动”给它。 如果您不想点击,您可以决定何时让 Rectangle 成为焦点,在获得焦点后,它也会触发 keyEvents。

我提到的 onClick 看起来像这样:

rectangle.setOnMouseClicked(event -> rectangle.requestFocus());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM