我想要实现的是在将其粘贴到HTMLEditor之前“秘密”编辑一些HTML代码。任何人都可以想到在JavaFX 2中做这样的事情的方法吗?
答案 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}},以便捕获,处理和使用相关拖动你想要的活动。