我目前正在开发一个即时消息传递程序,并创建了一个文本,供用户在FXML中输入消息。
如何添加KeyEvent,以便在文本字段有焦点时按下enter。
更新-尝试过,但不工作
<TextArea fx:id="area_chatInput"
editable="true"
prefHeight="60"
prefWidth="300"
wrapText="true"
promptText="Enter Message />
@FXML
private void keyListener(KeyEvent event){
if(event.getCode() == KeyCode.ENTER){
System.out.println("enter pressed");
sendMsg();
event.consume();
}
}发布于 2015-05-11 13:49:15
可以将onKeyPressed事件侦听器添加到TextField中的fxml中。
...
<TextField fx:id="chatText" layoutX="199.0" layoutY="174.0" onKeyPressed="#keyListener" />
...在控制器中,声明一个方法keyListener
public void keyListener(KeyEvent event){
if(event.getCode() == KeyCode.ENTER) {
// Do stuff
((TextField)event.getSource()).clear(); // clear textfield
System.out.println("Enter Pressed"); // print a message
}
}更新-根据评论
要避免游标步骤到下一行,您需要在事件离开方法之前使用该事件。
...
if (event.getCode() == KeyCode.ENTER) {
...
event.consume(); // Consume Event
}
...https://stackoverflow.com/questions/30167726
复制相似问题