java fx 事件处理_JavaFX学习之事件及控件绑定

本文详细介绍了在JavaFX中如何处理控件事件,特别是菜单的点击事件,以及如何进行控件绑定。通过在JavaFX Scene Builder中设置事件监听函数,如closeAction(),并与控制器类的方法相结合,实现事件响应。此外,还展示了如何进行输入框(TextField)的键盘事件绑定,如onKeyReleased()事件,以获取用户输入的内容。文章提供了具体的代码示例,并提到了Prompt Text(输入提示文字)的使用。
摘要由CSDN通过智能技术生成

原标题:JavaFX学习之事件及控件绑定

在昨天发布《JavaFX学习入门篇,想用Java写窗口应用的同学可以看看》的基础上,今天继续介绍JavaFX控件绑定及交互事件处理。昨天的文章中已经对新建立的demo.fxml指定了控制器类DemoController,这个控制器类就是今天学习中要用到的主类。在JavaFX中通过注解@FXML来绑定fxml文件中的控件或控件的事件。前面已经在场景中添加了菜单组件,菜单组件中默认已经添加了三个菜单,且都有一个子菜单,目前点击任何一个菜单都不会有响应。

下面介绍如何响应菜单的点击事件,首先在Netbeans中双击demo.fxml,然后在JavaFX Scene Builder中找到场景中的菜单组件。在左侧Document节点下Hierarchy中展开菜单,点击选中要添加事件监听的MenuItem,然后在右侧Inspector中展开Code节点,在On Action中输入该菜单点击时回调函数的名称,这里函数名称为closeAction,输入完成按回车并Ctrl+S保存修改。具体操作如下图所示:

d13f9c39bfc89fd7b7837c02a16eb191.png

完成以上操作之后回到Netbeans中,在DemoController中添加刚才的函数,注意需要添加@FXML注解,函数参数可以为空也可以是javafx.event.ActionEvent,参数可根据需要添加,但不是什么参数都可以。本例中函数如下: @FXML private void closeAction(ActionEventevent){//函数名必需与fxml中的一致 System.out.println("invoke close menu action"); }

到此菜单事件的绑定已经完成了,同样的道理其他任何交互控件的事件绑定都类似。每个控件可监听的事件都不太一样,例如输入框可以监听鼠标事件、键盘事件、触屏事件等等,交互事件监听都可以参考此操作。

接下来继续介绍控件的绑定,我们开发一个桌面应用表单元素是必不可少的。我们需要知道用户输入了什么内容,或者选择了哪个值。这些就需要用到控件的绑定,控件绑定操作也很简单,细心的读者或许已经发现前面的截图中On Action之前有个fx:id,没错这里就是通过这个id进行控件绑定。我们将一个输入框(TextField)拖放到场景中,并指定fx:id为input,为了触发显示我们输入的值,再监听这个输入框的键盘按键释放事件On Key Released,函数名为keyRelease,具体设置如下图:

acb8f0ca0f7b11ef98bc918d45bb3c8e.png

编辑完场景之后保存,回到Netbeans中在DemoController中添加一个TextField变量及一个方法keyRelease,注意变量及方法都需要添加@FXML注解,此处keyRelease的参数可以为空或javafx.scene.input.KeyEvent,其他参数会抛出IllegalArgumentException: argument type mismatch异常。添加代码如下: @FXML private TextField input;//变量名必需与fxml文件中的fx:id值一致 @FXML private void keyRelease(KeyEventevent){//函数名必需与fxml中的一致 System.out.println(input.getText()); }

到些控件的绑定也介绍完了,此时可以将项目运行起来看看效果。好奇的小伙伴或许对场景中的输入框文字“这是输入框”存在疑问,是默认值吗?这个是JavaFX的Prompt Text等同于HTML中的placeholder,即输入提示文字,当该控件得到光标时提示文字会消失。具体设置在右侧Inspector中的Properties页面中,本例源码已上传到作者github,用户名:ajtdnyy,项目名:JavaFXDemo。Prompt Text如下图所示:返回搜狐,查看更多

责任编辑:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值