Java 加载时间过长后如何停止WebEngine?
我目前正在创建一个自动机器人进入某个网站并执行重复任务。我正在使用JavaFX和WebEngine来实现这一点。问题是,这个网页有时需要很长时间才能加载,我不一定需要完全加载 我正在为WebEngine使用一个侦听器,这样当加载完成时,它将继续执行它的任务,但正如我所说的,有时加载需要几分钟的时间,这是一个问题 所以我的问题是,有没有办法在一段时间后停止加载,以便侦听器告诉我的程序加载已完成?这是我的听众:Java 加载时间过长后如何停止WebEngine?,java,web,javafx,javafx-webengine,Java,Web,Javafx,Javafx Webengine,我目前正在创建一个自动机器人进入某个网站并执行重复任务。我正在使用JavaFX和WebEngine来实现这一点。问题是,这个网页有时需要很长时间才能加载,我不一定需要完全加载 我正在为WebEngine使用一个侦听器,这样当加载完成时,它将继续执行它的任务,但正如我所说的,有时加载需要几分钟的时间,这是一个问题 所以我的问题是,有没有办法在一段时间后停止加载,以便侦听器告诉我的程序加载已完成?这是我的听众: webEngine.getLoadWorker().stateProperty().ad
webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() {
@Override
public void changed(ObservableValue<? extends Worker.State> observableValue,
Worker.State oldState, Worker.State newState) {
if (newState == Worker.State.SUCCEEDED) {
loaded = true;
System.out.println("true");
start();
}
}
});
webEngine.getLoadWorker().stateProperty().addListener(新的ChangeListener()){
@凌驾
public void已更改(observeValue您可以设置计时器,即在1分钟后停止加载页面
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
// Stop loading page
}
}, 60*1000);
这很棘手,因为我使用的是侦听器。唯一可行的方法是,如果我可以在一定时间后手动将webengines工作状态设置为Successed(成功),我环顾四周,不确定您是否可以手动设置工作状态。