![](/img/trans.png)
[英]Multiple Rectangle setOnMousePressed doesn't work in JavaFX
[英]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.