2012-09-22 3 views
10

WebEngine로드가 완료된 후 작업을 자동으로 실행할 수 있습니까? 로드 진행률을 나타 내기 위해 WorkerWebEngine에서 얻을 수 있지만 우아한 해결책이 아닌 (즉, 페이지가로드 될 때까지 프로그램 잠금) 반복적으로 폴링하는 것처럼 보입니다. 나는 Task으로 이것을 할 수 있다는 것을 알고 있는데, 어떻게 든 TaskWebEngine에 넣고 실행 명령을 추가 할 수 있습니까? WebView documentation에 기초WebView가 완전히로드 된 후 작업 실행

답변

15

샘플 :

webView.getEngine().getLoadWorker().stateProperty().addListener(
    (ObservableValue<? extends Worker.State> observable, 
    Worker.State oldValue, 
    Worker.State newValue) -> { 
    if(newValue != Worker.State.SUCCEEDED) { 
     return; 
    } 

    // Your logic here 
    }); 
: 람다 식과

webView.getEngine().getLoadWorker().stateProperty().addListener(
    new ChangeListener<Worker.State>() { 
    @Override 
    public void changed(
    ObservableValue<? extends Worker.State> observable, 
    Worker.State oldValue, Worker.State newValue) { 

    if(newValue != Worker.State.SUCCEEDED) { 
     return; 
    } 

    // Your logic here 
    } 
}); 

관련 문제