package com.jenkov.javafx;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.concurrent.Worker;
import javafx.concurrent.Worker.State;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class WebViewExample extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage primaryStage) throws IOException {
primaryStage.setTitle("JavaFX WebView Example");
String content = new String(Files.readAllBytes(Paths.get("/home/console/French_pc_keyboard.svg")));
WebView webView = new WebView();
WebEngine engine = webView.getEngine();
engine.loadContent(content);
engine.getLoadWorker().stateProperty().addListener(
new ChangeListener<State>() {
@Override public void changed(ObservableValue ov, State oldState, State newState) {
if (newState == Worker.State.SUCCEEDED) {
System.out.println("called");
Document document = webView.getEngine().getDocument();
Element element = document.getElementById("rect2354");
String style = element.getAttribute("style");
element.setAttribute("style", "fill:#00ff00;");
}
}
});
VBox vBox = new VBox(webView);
Scene scene = new Scene(vBox, 960, 600);
primaryStage.setScene(scene);
primaryStage.show();
}
}