![](/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.