web-dev-qa-db-ja.com

ローカルページをJavaFXwebEngineにロードしようとしています

ローカルに保存されたHTMLページをロードしようとしているJavaFXアプリケーションのタブにwebViewコンポーネントがあります。

_WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("/webView/main.html");
_

私のhtmlドキュメントは(おそらく間違って)次の場所に保存されています:

Location of my HTML document

ここで、com.cds.guiには、ファイルをロードしようとしているクラスが含まれています。 webEngine.getDocument()を出力すると、nullが表示されます。つまり、ドキュメントが読み込まれていません。

どこが悪いのか教えてください!ありがとう。

9
TomRaikes

WebEngineがローカルファイルを見つけられるように、ローカルファイルをURLとして読み込む必要があります。たとえば、を使用してファイルをリソースとして見つけることができます

URL url = this.getClass().getResource("/com/cds/gui/webView/main.html");
webEngine.load(url.toString());

または、実際の文字列パスをFileオブジェクトにロードし、それを使用して文字列URLを取得することもできます。

File f = new File("full\\path\\to\\webView\\main.html");
webEngine.load(f.toURI().toString());

お役に立てれば!

19
Marian

URIのファイル構文を使用できます。

file:///C:/path/to/file.html (Windows)

https://en.wikipedia.org/wiki/File_URI_scheme

2
ManoDestra

ファイルへのパスに長い間苦しんでおり、これは私にとってはうまくいきます(Mavenプロジェクト、フォルダーリソース):

WebEngine engine = html.getEngine();
            File f = new File(getClass().getClassLoader().getResource("html/about.htm").getFile());
            engine.load(f.toURI().toString());