int soumen
int soumen

Reputation: 531

I want to change my WebView content from a HTML file using thread in javafx

Here is my code. I am using scene builder. The code is not working.For first time it loads the hello1.html but in thread the hello2.html does not load.

public class TwavlController implements Initializable {

    /**
     * Initializes the controller class.
     */
    @FXML public WebView webPane;
    private Service<Void> back_thread;


    private WebEngine engine;



    @Override
    public void initialize(URL url, ResourceBundle rb) {
    // TODO
    engine = webPane.getEngine();

    final String html_file = "hello1.html"; //HTML file to view in web view


    URL urlHello = getClass().getResource(html_file);

    engine.load(urlHello.toExternalForm());  
    run();
    }    

    private File last_update,current;

    public void run(){
        back_thread = new Service<Void>() {

            @Override
            protected Task<Void> createTask() {
                return new Task<Void>() {
                    @Override
                    protected Void call() throws Exception {
                        updateMessage("hello2.html");
                        return null;
                    }

                };                
            }
        };



        engine.userAgentProperty().bind(back_thread.messageProperty());
        back_thread.restart();
    }
}

Upvotes: 0

Views: 240

Answers (1)

James_D
James_D

Reputation: 209438

I'm not really clear what you're trying to do here, but I think maybe you are looking for

public void run(){
    back_thread = new Service<Void>() {

        @Override
        protected Task<Void> createTask() {
            return new Task<Void>() {
                @Override
                protected Void call() throws Exception {
                    Platform.runLater(() -> 
                        engine.load(getClass().getResource("hello2.html").toExternalForm()));
                    return null;
                }

            };                
        }
    };

    back_thread.restart();
}

Upvotes: 1

Related Questions