Я использую прослушиватель для состояния веб-движка, и он работает нормально. Кроме того, документ заполняется в это время, потому что достигнуто состояние SUCCEEDED.JavaFX - Доступ к модели DOM для WebEngine
Государственный СЛУШАТЕЛЬ:
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();
}
}
}
}
Моя проблема в том, что я использую другой слушатель на кнопку переключения, который я вручную огонь методом selectToggle() в более раннее время (в конструктор другого представления), где модель документа веб-движка еще не установлена слушателем состояния, поскольку состояние SUCCEED не достигнуто до появления стадии JavaFX.
Так что теперь мне нужно решение, как я могу слушать сцену JavaFX, когда пользовательский интерфейс визуализируется. Потому что в это время реагирует слушатель штата, после чего я могу вызвать метод setInitialState() и работать с моделью документа веб-движка.
Код выбора ToggleButton:
public void setInitialState() {
screenGroup.selectToggle(rbMasterScreen);
elementGroup.selectToggle(btnButton);
}
Я действительно не понимаю, что вы хотите сделать. Если вы слушаете состояние, как возможно, что документ равен нулю? И что с ToggleButton? Или отправьте образец кода, в противном случае очень сложно помочь. – DVarga