簡體   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