JavaFX有类似Swing的TransferHandler吗?

时间:2012-04-11 02:10:40

标签: javafx-2

我想要实现的是在将其粘贴到HTMLEditor之前“秘密”编辑一些HTML代码。任何人都可以想到在JavaFX 2中做这样的事情的方法吗?

1 个答案:

答案 0 :(得分:1)

通常您可以做的是将ChangeListener添加到正在更改的属性(例如TextArea的{​​{1}})检查更改侦听器中的新值并修改它你想要的东西。这个策略与TextProperty并不完全相同,但(我认为)可以在某些你在Swing中使用TransferHandler的地方使用。不幸的是,在TransferHandler的情况下,您将无法使用此类策略,因为HtmlEditor文本未实现为可监听的属性(尽管有请求将其设置为未来的JavaFX版本:RT-18436)。

查看JavaFX drag and drop documentation,JavaFX确实支持TransferMode,可以在接收拖动事件时查询该onDragDropped以执行不同的操作(例如复制,链接或移动数据)。

另外,如果从拖放文档中查看示例6,您可以看到可以为可以拦截HtmlEditor的节点设置event filter事件处理程序并采取适当的措施当时的操作(例如将DragEvent的{​​{1}}设置为已拖动数据的修改版本。如果您无法覆盖htmlText的默认HtmlEditor函数,则可以在onDragDropped上放置{{3}},以便捕获,处理和使用相关拖动你想要的活动。