矩形上的JavaFx KeyEvent不';行不通
我在矩形上的JavaFx KeyEvent不';行不通,java,events,javafx,keyevent,Java,Events,Javafx,Keyevent,我在网格窗格上有一个矩形,在添加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.setOnK
网格窗格上有一个矩形
,在添加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);
按任意键都不会打印任何内容。我的代码可能有什么问题?问题是矩形没有焦点,并且在没有焦点的节点上不会触发KeyEvents。您可以通过调用rectangle.requestFocus()
来请求焦点。
简单点击它似乎无法获得焦点,所以你必须“手动”给它。
如果你不想点击,你可以决定什么时候让矩形成为焦点,在它获得焦点后,它也会触发keyEvents
我提到的onClick如下所示:
rectangle.setOnMouseClicked(事件->rectangle.requestFocus())代码>问题在于矩形没有焦点,并且在没有焦点的节点上不会触发KeyEvents。您可以通过调用rectangle.requestFocus()
来请求焦点。
简单点击它似乎无法获得焦点,所以你必须“手动”给它。
如果你不想点击,你可以决定什么时候让矩形成为焦点,在它获得焦点后,它也会触发keyEvents
我提到的onClick如下所示:
rectangle.setOnMouseClicked(事件->rectangle.requestFocus())代码>