首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何拾取在JavaFX2中按下的Enter键?

如何拾取在JavaFX2中按下的Enter键?
EN

Stack Overflow用户
提问于 2012-12-14 22:29:40
回答 5查看 87.8K关注 0票数 30

我有一个用于输入搜索词的TextField,以及一个用于"Go“的按钮。但在JavaFX2中,我如何才能让按下TextField中的Enter键来执行操作呢?

谢谢:)

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-12-14 23:44:54

您可以使用TextField的onAction属性并将其绑定到控制器中的方法。

代码语言:javascript
复制
@FXML
public void onEnter(ActionEvent ae){
   System.out.println("test") ;
}

在您的FXML文件中:

代码语言:javascript
复制
<TextField fx:id="textfield" layoutX="29.0" layoutY="298.0" onAction="#onEnter" prefWidth="121.0" />
票数 41
EN

Stack Overflow用户

发布于 2012-12-14 23:39:02

我假设您希望只有在TextField具有焦点的情况下用户按enter时才会发生这种情况。您将希望在javafx.scene.input包之外使用KeyEvent,并执行以下操作:

代码语言:javascript
复制
field.setOnKeyPressed(new EventHandler<KeyEvent>() {
    @Override
    public void handle(KeyEvent ke) {
        if (ke.getCode().equals(KeyCode.ENTER)) {
            doSomething();
        }
    }
});

使用lambda:

代码语言:javascript
复制
field.setOnKeyPressed( event -> {
  if( event.getCode() == KeyCode.ENTER ) {
    doSomething();
  }
} );
票数 77
EN

Stack Overflow用户

发布于 2015-10-23 01:34:11

您可以尝试以下操作:

代码语言:javascript
复制
@FXML
public void buttonPressed(KeyEvent e)
{
    if(e.getCode().toString().equals("ENTER"))
    {
        //do something
    }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13880638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档