[JavaFX] 实现按钮、鼠标、键盘事件监听

本文介绍了如何在 JavaFX 中实现按钮、鼠标和键盘事件监听。通过事件触发编程,当用户单击鼠标或按下键盘时,圆圈图形会根据不同的操作改变大小。文章详细讲解了事件源、事件对象和事件处理对象的概念,并提供了事件注册方法的总结,特别是键盘事件的处理。最后,给出了完整的代码实现。
摘要由CSDN通过智能技术生成

效果图

在按动按键时,圆圈可以调整大小。
单击鼠标左键,圆圈变大;单击鼠标右键,圆圈变小。
按键盘“U”键,圆圈变大;按键盘“D”键,圆圈变小。
原图

关键步
Button btShrink = new Button("Shrink");
btShrink.setOnAction(e -> {
   
                circlePane.shrink();
            }
            });
事件触发编程

事件处理过程中的三方:

  • 事件源对象,又称源对象、源组件。产生事件的一方。例如按钮。
  • 事件对象。根类:java.util.EventObject, javafx.event.Event
  • 事件处理对象。有两个条件:
    (1)实现 EventHandler <T extends Event>接口。
    (2)与事件源对象绑定。可以用 EventObject 类中的 getSource() 方法确定事件的源对象。
事件注册方法总结
   用户动作        源对象         事件类型           事件注册方法
   单机按钮        Button         ActionEvent      setOnAction(EventHandler<ActionEvent>)
   在文本域回车    TextField      ..               ..
   (取消)勾选      RadioButton/CheckBox            ..
   选择新项        ComboBox       ..               ..
   按下鼠标        Node/Scene     MouseEvent       setOnMousePressed(EventHandler<MouseEvent>)
   释放鼠标        ..             ..               setOnMouseReleased(EventHandler<MouseEvent>)
   单击鼠标        ..             ..               ..Clicked..
   鼠标进入        ..             ..               ..Entered..
   鼠标退出        ..             ..               ..Exited..
   鼠标移动        ..             ..               ..Moved..
   鼠标拖动        ..             ..               ..Dragged..
   按下键          Node/Scene     KeyEvent         setOnKeyPressed(EventHandler<KeyEvent>)
   释放键          ..             ..               ..Released..
   敲击键          ..             ..               ..Typed..
键盘事件
方法返回 getCode() getText() getCharacter()
按下键和释放键 (enum)KeyCode常量 描述字符串 空字符串
敲击键 UNDEFINED Unicode字符或字符序列
完整代码实现
package sample;

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.input.KeyCode;
import javafx.scene.input
  • 4
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值