engine.getLoadWorker().workDoneProperty().addListener(new ChangeListener<Number>() { @Override public void changed(ObservableValue<? extends Number> observableValue, Number oldValue, final Number newValue) { engine.getLoadWorker() .exceptionProperty() .addListener(new ChangeListener<Throwable>() { if (engine.getLoadWorker().getState() == FAILED) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() {
public void start(Stage primaryStage) { WebView webview = new WebView(); final WebEngine webengine = webview.getEngine(); webengine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { Document doc = webengine.getDocument(); try { Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(System.out, "UTF-8"))); } catch (Exception ex) { ex.printStackTrace(); } } } }); webengine.load("http://stackoverflow.com"); primaryStage.setScene(new Scene(webview, 800, 800)); primaryStage.show(); }
@Override public void stop() { webEngine.getLoadWorker().cancel(); }
public ReadOnlyBooleanProperty loadingProperty() { return webEngine.getLoadWorker().runningProperty(); }
@Override public void initialize(URL url, ResourceBundle rb) { URL MapURL = getClass().getResource("map.html"); WebEngine WebEngine = Map.getEngine(); WebEngine.getLoadWorker().stateProperty().addListener((ov, oldState, newState) -> { if (newState == State.SUCCEEDED) { WebEngine.executeScript("getCoordinates('40.3130432088809')"); } }); WebEngine.load(MapURL.toExternalForm()); }
WebEngine engine = webView.getEngine(); engine.getLoadWorker().stateProperty().addListener((obs, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED) { addStylesheet(engine.getDocument(), "http://page.com/style.css"); } }); engine.load(/* your html ... */);
public void run() { browser.webEngine.getLoadWorker().progressProperty().addListener(new ChangeListener<Number>() { public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) { if (browser.webEngine.getLoadWorker().getProgress() != -1) { progressBar.setValue((int) Math.round(browser.webEngine.getLoadWorker().getProgress() * 100.)); } } }); browser.webEngine.getLoadWorker().runningProperty().addListener(new ChangeListener<Boolean>() { public void changed(ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) { progressBar.setVisible(t1); } }); } };
//When the "new menuitem" is clicked, then it must create MenuItem newMenuItem = (MenuItem) fxmlLoader.getNamespace().get("new"); newMenuItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { final WebEngine webEngine = wv.getEngine(); webEngine .reload(); webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == State.SUCCEEDED) { JSObject jsobj = (JSObject) we.executeScript("window"); jsobj.setMember("liss", lissProg); } } }); } });
private static WebView webview; public static void someMethod() { try { if (webview == null){ webview = new WebView(); } WebEngine webEngine = webview.getEngine(); webEngine.getLoadWorker().stateProperty().addListener( new ChangeListener<State>() { public void changed(ObservableValue ov, State oldState, State newState) { System.out.println("newState = " + newState); if (newState == State.SUCCEEDED) { System.out.println(webEngine.getLocation()); } } }); webEngine.load("http://javafx.com"); } catch (Exception ex) { System.err.print("error " + ex.getMessage()); ex.printStackTrace(); } }
@Override public void waitForBeingLoaded() { final Semaphore lock = new Semaphore(0); Platform.runLater(() -> webView.getEngine().getLoadWorker().stateProperty() .addListener(((observableValue, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED) { lock.release(); } }))); try { lock.acquire(); } catch (InterruptedException e) { this.messageWaitingForResponse.sendCancelSignal(); } }
webEngine.getLoadWorker().stateProperty().addListener((obs,oldState,newState)->{ if(newState==State.SUCCEEDED){ final PauseTransition pause = new PauseTransition(Duration.millis(500));
WebEngine webEngine = browser.getEngine(); webEngine.getLoadWorker().stateProperty().addListener((ov,oldState,newState)->{ if(newState==State.SUCCEEDED){ JSObject window = (JSObject) webEngine.executeScript("window"); window.setMember("app", new JavaApplication()); } }); webView.getEngine().loadContent("<html>\n" + " <script>function initialize() {" + " var lengthInMeters = 5; " + " app.calljavascript(lengthInMeters);" + "} </script> " + " <body onLoad=\"initialize()\">Hi!\n" + " </body>\n" + "</html>");
@Override public void waitForUrl(String urlMatch) { final Semaphore lock = new Semaphore(0); Platform.runLater(() -> webView.getEngine().getLoadWorker().stateProperty() .addListener(((observableValue, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED && urlMatches(getCurrentUrl(), urlMatch)) { lock.release(); } }))); try { lock.acquire(); } catch (InterruptedException e) { this.messageWaitingForResponse.sendCancelSignal(); } }
final WebView webView = new WebView(); final WebEngine webEngine = webView.getEngine(); webEngine.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> { if (newState == State.SUCCEEDED) { Document doc = webEngine.getDocument(); } }); webEngine.loadContent("<h1>hello</h1>"); //webEngine.load("http://google.ch"); // This works too
public class MainController implements Initializable { @FXML private WebView webDoc; public void initialize(URL location, ResourceBundle resources) { final WebEngine webEngine = webDoc.getEngine(); String url = this.getClass().getResource("/html/main.html").toExternalForm(); webEngine.load(url); webEngine.getLoadWorker().stateProperty().addListener((observable, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED) { final Document doc = webEngine.getDocument(); EventTarget button = (EventTarget) doc.getElementById("goButton"); button.addEventListener("click", evt -> { HTMLTextAreaElement textField = (HTMLTextAreaElement) doc.getElementById("inputText"); alert(textField.getValue()); }, false); } }); } private void alert(String text) { Alert alert = new Alert(Alert.AlertType.CONFIRMATION, text); alert.showAndWait(); } }
engine = webView.getEngine(); engine.getLoadWorker().stateProperty().addListener((obs, oldState, newState) -> { if (newState == Worker.State.SUCCEEDED) {
@Override public void start(Stage primaryStage) { WebView webView = new WebView(); final WebEngine webEngine = webView.getEngine(); webEngine.load(getClass().getResource("demo.html").toExternalForm()); webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener<Worker.State>() { @Override public void changed(ObservableValue<? extends Worker.State> ov, Worker.State oldState, Worker.State newState) { if (newState == Worker.State.SUCCEEDED) { JSObject window = (JSObject) webEngine.executeScript("window"); window.setMember("myJavaFXButton", new Button("My JavaFX Button")); } } }); StackPane root = new StackPane(); root.getChildren().addAll(webView); Scene scene = new Scene(root, 300, 250); primaryStage.setScene(scene); primaryStage.show(); }
/** * Reset the state of the browser. More efficient than quitting the * browser and creating a new instance. * * @param settings * New settings to take effect, superseding the original ones */ public void reset(final Settings settings) { AppThread.exec(() -> { context.get().item().engine.get().getLoadWorker().cancel(); return null; }); Accessor.getPageFor(context.get().item().engine.get()).stop(); ((CookieStore) CookieManager.getDefault()).clear(); StatusMonitor.instance().clear(); LogsServer.instance().clear(null); SettingsManager.register(settings); context.get().reset(this); }
private WebView webView; private WebEngine engine; private void createCalendar() { webView = new WebView(); engine = webView.getEngine(); engine.load("file:D:/standAloneDev//src/fc/fullcalendarwebview/fullcalendar-1.6.4/demos/selectable.html"); engine.getLoadWorker().stateProperty().addListener((ov,oldState, newState)->{ if(newState==State.SUCCEEDED){ // JS to Java JSObject script = (JSObject) engine.executeScript("window"); script.setMember("myClick", new JavaApp()); // Java to JS engine.executeScript("function testCheckMate() {\n" + " alert(\"Check-Mate\");\n" + " };"); } }); engine.setOnAlert(e->System.out.println("Alert: "+e.getData())); }
private WebView webView; private WebEngine engine; private void createCalendar() { webView = new WebView(); engine = webView.getEngine(); engine.load("file:D:/standAloneDev//src/fc/fullcalendarwebview/fullcalendar-1.6.4/demos/selectable.html"); engine.getLoadWorker().stateProperty().addListener((ov,oldState, newState)->{ if(newState==State.SUCCEEDED){ // JS to Java JSObject script = (JSObject) engine.executeScript("window"); script.setMember("myClick", new JavaApp()); // Java to JS, function to create single event engine.executeScript("function addEvent(title, start, end) {\n" + "var eventData = {\n" + " title: title,\n" + " start: start,\n" + " end: end\n" + "};\n" + "$('#calendar').fullCalendar('renderEvent', eventData, true);\n" + "}"); } }); }