0
Webエンジンの状態にリスナーを使用しています。正常に動作しています。 SUCCEEDED状態に達したため、この時点で文書が埋められます。JavaFX - WebEngineのDOMモデルへのアクセス
状態リスナ:
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();
}
}
}
}
私の問題は、私は(I手動早い時点で方法selectToggle()によって発射トグルボタン、上の別のリスナーを使用すること、あります別のビューのコンストラクタ)、JavaFXステージがポップアップする前に状態SUCCEEDに達していないため、Webエンジンのドキュメントモデルが状態リスナによってまだ設定されていません。
これで、UIがレンダリングされるとき、JavaFXステージでどのように聴くことができるのか、解決策が必要です。この時点では、状態リスナーが反応し、その後、setInitialState()メソッドを呼び出して、Webエンジンのドキュメントモデルを操作できます。
トグルボタンを選択するコード:この場合
public void setInitialState() {
screenGroup.selectToggle(rbMasterScreen);
elementGroup.selectToggle(btnButton);
}
私は本当にあなたがしたい何をすべきか理解していません。 Stateを聞くと、ドキュメントがnullである可能性はありますか? ToggleButtonとは何ですか? コードサンプルを投稿してください。 – DVarga