Ich benutze einen Listener für den Status der Web-Engine und es funktioniert gut. Auch das Dokument ist zu diesem Zeitpunkt gefüllt, weil der State ERFOLGREICH erreicht ist.JavaFX - Zugriff auf DOM-Modell der WebEngine
Der Staat Zuhörer:
public class WebViewListener implements ChangeListener<Worker.State> {
public void changed(ObservableValue observable, State oldState, State newState) {
if (newState == State.SUCCEEDED) {
String style = "";
try {
style = cssModel.getRuntimeCSSFileAsString();
htmlModel.setDocument(view.getWebEngine().getDocument());
htmlModel.setStyleAttribute(style);
} catch (IOException e) {
e.printStackTrace();
} catch (HTMLDocumentNullException e) {
e.printStackTrace();
}
}
}
}
Mein Problem ist, dass ich eine anderen Hörer auf einem Toggle-Button verwenden, die ich manuell durch das Verfahren selectToggle() zu einem frühen Zeitpunkt Feuer (in der Konstruktor einer anderen Ansicht), in dem das Dokumentmodell der Web-Engine noch nicht vom Status-Listener gesetzt wurde, weil der State SUCCEED nicht erreicht wird, bevor die JavaFX-Stufe erscheint.
Also jetzt brauche ich eine Lösung, wie ich auf der JavaFX-Stage abhören kann, wenn die UI gerendert wird. Da zu dieser Zeit reagiert der Staat Zuhörer und danach konnte ich die setInitialState() Methode und die Arbeit mit dem Dokumentenmodell des Web-Engine nennen.
der Code das Umschaltfeld des Auswählens:
public void setInitialState() {
screenGroup.selectToggle(rbMasterScreen);
elementGroup.selectToggle(btnButton);
}
Ich verstehe wirklich nicht, was Sie tun mögen. Wenn Sie State hören, wie ist es möglich, dass das Dokument null ist? Und was mit dem ToggleButton? Oder poste ein Codebeispiel, sonst ist es wirklich schwer zu helfen. – DVarga