2012-04-11 56 views

回答

1

通常情況下,您可以將ChangeListener添加到正在更改的屬性(例如TextAreaTextProperty)中,檢查更改偵聽器中的新值並將其修改爲您需要的值。這個策略與TransferHandler不完全相同,但是(我認爲)在某些地方可以在Swing中使用TransferHandler。不幸的是,在HtmlEditor的情況下,您將無法使用這種策略,因爲HtmlEditor文本未作爲可監聽屬性實現(儘管在將來的JavaFX版本中有一個請求使其成爲屬性:RT-18436)。

查看JavaFX drag and drop documentation,JavaFX確實支持TransferMode,可以在接收拖動事件以執行不同操作(如複製,鏈接或移動數據)時查詢。另外,如果您查看拖放文檔中的示例6,則可以看到可以爲節點設置一個onDragDropped事件處理程序,該節點可以攔截DragEvent並在該時間採取適當的操作(例如將HtmlEditorhtmlText設置爲拖動數據的修改版本)。如果您在覆蓋HtmlEditor的默認onDragDropped功能時遇到困難,那麼您可以在HtmlEditor上放置一個event filter,它允許您按照需要捕捉,處理和使用相關的拖動事件。