使用JavaFx 8时,我需要能够删除侦听器并恢复它,以防止代码在不应该被触发时被触发。下面是添加侦听器的代码。我尝试了许多不同的方法来删除侦听器,但似乎没有一种方法成功。以下代码与我要删除(或禁用/启用)的侦听器相关:
import javafx.scene.control.ScrollPane;
private ScrollPane c_fX_ScrollPane;
c_fX_ScrollPane.vvalueProperty().addListener(
(ObservableValue<? extends Number> observable,
Number oldValue, Number newValue) -> {
fn_HandleScrollPaneVerticalValue(oldValue.doubleValue(),
newValue.doubleValue());
});提亚
发布于 2015-09-17 02:45:56
如果你想删除它,你不需要引用它吗?因此,您需要在addListener()方法调用之外实例化ChangeListener,并在removeListener()调用上使用相同的引用。
ChangeListener listener = new ChangeListener(){
@Override public void changed(ObservableValue o,Object oldVal,
Object newVal){
fn_HandleScrollPaneVerticalValue(oldValue.doubleValue(),
newValue.doubleValue());
});
c_fX_ScrollPane.vvalueProperty().addListener(listener);
c_fX_ScrollPane.vvalueProperty().removeListener(listener);https://stackoverflow.com/questions/32599348
复制相似问题