gpt4 book ai didi

java - 监听器移除

转载 作者:行者123 更新时间:2023-12-02 02:23:05 25 4
gpt4 key购买 nike

我有一个像这样的监听器添加:

lwebview.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener() {
public void changed(ObservableValue pobservable, Object poldstate, Object pnewstate) {
if (pnewstate.toString().equals("SUCCEEDED")) {
//code to be executed
}
}
});

现在我的问题是,有什么方法可以在执行后删除这个监听器吗?我对这些类型的事情还很陌生。提前感谢您的帮助!

最佳答案

您应该单独创建 ChangeListener 并保留它的引用。

ChangeListener<Worker.State> listener = new ChangeListener<Worker.State>() {
public void changed(ObservableValue<? extends Worker.State> pobservable, Worker.State poldstate, Worker.State pnewstate) {
if (pnewstate = Worker.State.SUCCEEDED) {
//code to be executed
}
}
};

lwebview.getEngine().getLoadWorker().stateProperty().addListener(listener);

当您稍后需要删除它时:

lwebview.getEngine().getLoadWorker().stateProperty().removeListener(listener);

如果您只需要监听器停留直到它“成功”,那么您可以:

lwebview.getEngine().getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
public void changed(ObservableValue<? extends Worker.State> pobservable, Worker.State poldstate, Worker.State pnewstate) {
if (pnewstate = Worker.State.SUCCEEDED) {
//code to be executed
lwebview.getEngine().getLoadWorker().stateProperty().removeListener(this);
}
}
});

关于java - 监听器移除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48200632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com