我正在尝试使用WebEngine作为一个无头浏览器。这里有一个概念的证明,它与官方Java文档中的示例非常相似。
import javafx.scene.web.*;
import javafx.application.*;
import javafx.stage.*;
import javafx.concurrent.Worker.*;
import javafx.beans.value.*;
public class WebEngineTest extends Application {
public void start(Stage s) {
WebEngine we = new WebEngine();
//Print state changes as they happen;
//Should go READY -> SCHEDULED -> RUNNING -> SUCCEEDED
we.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
public void changed(ObservableValue ov, State oldState, State newState) {
System.out.println(oldState + " -> " + newState);
}
});
//Hit some website
we.load("http://javafx.com");
}
public static void main(String[] args) {
launch(args);
}
}输出:
READY -> SCHEDULED
SCHEDULED -> RUNNING成功永远不会被击中,也不会有任何错误的条件。(预期行为:任务最终应该终止,有成功的状态,或者某种错误条件。)
发布于 2016-03-31 19:27:36
有同样的问题,链接你在评论帮助我。只需在start方法之外声明您的web引擎,否则GC会处理它。
https://stackoverflow.com/questions/27652345
复制相似问题