当我有一个对象o
并且想要为其添加事件,比如说当点击它时更改其颜色(假设它是一个Rectangle
对象),o.setNonMouseClicked(){ ... }
和
o.addEventHandler(Action.EventAction, new EventHandler<ActionEvent>(){ ... })
如何做出正确的选择?
当我有一个对象o
并且想要为其添加事件,比如说当点击它时更改其颜色(假设它是一个Rectangle
对象),o.setNonMouseClicked(){ ... }
和
o.addEventHandler(Action.EventAction, new EventHandler<ActionEvent>(){ ... })
如何做出正确的选择?
这要看情况而定。
"setOnMouseClicked"会向您的对象添加一个新的EventHandler。但它也会替换先前通过该方法添加的任何eventHandler!因此,如果您计划在运行时更改对鼠标单击的反应方式,则可以使用此方法。
现在,如果您只想添加另一个eventHandler(或多个),则应使用"addEventHander"方法。因此,您将在一侧添加处理程序。并且,如果之前已添加,则将保留通过"setOnMouseClicked"添加的eventHandler。
还要注意添加的eventHandler或listener,因为它们可能导致严重的内存泄漏,因此请确保在必要时将它们移除。
BorderPane
)是否可能不支持.addEventHandler();
方法? - bogsetOnMouseClicked
不会替换您旧的/已附加的事件,两者都将执行。 - Asif Mushtaq