JavaFX:方法setOnMouseClicked()和addEventHandler()之间的区别?

时间:2014-09-07 09:32:14

标签: event-handling javafx

当我有一个对象o并且我想要向它添加一个事件时,让我说我希望它在点击时改变它的颜色(假设它是一个Rectangle对象)。有什么区别: o.setNonMouseClicked(){ ... }

o.addEventHandler(Action.EventAction, new EventHandler<ActionEvent>(){ ... })

如何正确选择?

1 个答案:

答案 0 :(得分:3)

这取决于具体情况。

&#34; setOnMouseClicked&#34;将为您的对象添加一个新的EventHandler。但它也将取代之前通过该方法添加的任何eventHandler!因此,如果你计划在运行时改变对鼠标点击作出反应的方式,这是正确的方法。

现在,如果你只想添加另一个eventHandler(或几个),你应该使用&#34; addEventHander&#34;方法。因此,您将在一侧添加处理程序。并且您将通过&#34; setOnMouseClicked&#34;添加eventHandler。如果以前添加过。

还要注意你添加的eventHandler或者监听器,因为它们会导致严重的内存泄漏,所以一定要在必要时将其删除。