javafx使用便捷事件处理器

2017-12-26  本文已影响0人  syy1125

使用快捷方法

许多快捷方法都定义在Node类中,并且这些方法对Node的所有子类也都是可用的。除此之外还有有一些其它类也包含快捷方法。表2-1列出了这些快捷方法可以处理的事件并标识出这些方法是在哪些类中定义的。

用户动作事件类型所在类

按下键盘上的按键   KeyEvent     Node、Scene

移动鼠标或者按下鼠标按键   MouseEvent      Node、Scene

执行完整的“按下-拖拽-释放”鼠标动作  MouseDragEvent      Node、Scene

在一个节点中,底层输入法提示其文本的改变。编辑中的文本被生成/改变/移除时,底层输入法会提交最终结果,或者改变插入符位置。InputMethodEvent      Node、Scene

执行受所在平台支持的拖拽动作DragEvent    Node、Scene

滚动某对象  ScrollEvent   Node、Scene

在某对象上执行旋转手势  RotateEvent   Node、Scene

在某对象上执行滑动手势   SwipeEvent    Node、Scene

触摸某对象   TouchEvent    Node、Scene

在某对象上执行缩放手势   ZoomEvent    Node、Scene

请求上下文菜单     ContextMenuEvent    Node、Scene

按下按钮、显示或隐藏组合框、选择菜单项        ActionEvent              

所属类型(ButtonBase、ComboBoxBase、ContextMenu、MenuItem、TextField)

编辑列表、表格或者树的子项    ListView.EditEvent     ListView

TableColumn.CellEditEvent          TableColumn

TreeView.EditEvent    ListView

媒体播放器遇到错误    MediaErrorEvent     MediaView

菜单被显示或者隐藏    Event   Menu

弹出式窗口被隐藏   Event     PopupWindow

选项卡被选择或者关闭   Event    Tab

窗口被关闭、显示或者隐藏    WindowEvent      Window

注册事件处理器(Event Handler)的快捷方法都有如下格式:

setOnEvent-type(EventHandler value)

Event-type表示该Event Handler处理的事件类型,例如,setOnKeyTyped表示处理KEY_TYPED事件、setOnMouseClicked表示处理MOUSE_CLICKED事件。event-class表示事件类型的定义类,例如KeyEvent表示与键盘输入有关的事件、MouseEvent表示与鼠标输入有关的事件。字符串表示该方法接收一个处理event-class类型或其父类型事件的处理器作为参数。例如,当事件是鼠标事件或者键盘事件时都可以使用InputEvent类型的Event Handler。

下面的语句展示了注册Event Handler的方法的定义,该Event Handler用于处理键盘输入时产生的事件,即按键被按下并被释放时产生的事件:

setOnKeyTyped(EventHandler value)

你可以在对快捷方法的调用中把Event Handler定义为匿名类,这种方式可以一步到位地创建和注册事件处理器。Event Handler需要实现handle()方法来提供事件处理代码。

上一篇下一篇

猜你喜欢

热点阅读