loadContent()
メソッドでwebEngine
にロードされるString HTMLコンテンツがあります。私はまた、このページで使用されるいくつかのCSSと画像ファイルを持っています。私はこれらのファイルをJavaクラスの同じパッケージに入れますが、ロードされたページはそれらを見つけることができません。 APIのドキュメントやウェブを探したが、それに似た適切な解決策を見つけることができなかった。これらのファイルをどのようにロードするのですか?javafx.scene.web.WebEngine#loadContentによって読み込まれたhtmlページからCSSおよびイメージファイルにアクセスするには?
答えて
あなたはloadContent
次の方法のためのHTML文字列で、ローカルパスを設定する必要があります。
view.getEngine().loadContent(
"<img src='" + getClass().getResource("1.jpg") + "' />");
あなたは、Javaクラスと同じパッケージ内のファイルで、あなたの文字列のHTMLコンテンツを配置し、代わりにengine.load(String url)
方法を使用することができます:
engine.load(getClass().getResource("mypage.html").toExternalForm());
あなたがこれを行うと、HTMLページ内のすべての相対リンクは、あなたのJavaパッケージ内のリソース(例えば、CSSと画像ファイル)に解決されます。
jarファイルにあるリソースをロードする場合、jar:
プロトコルは親指定子を持つ相対リンクを理解していないことに注意してください。たとえば、<img src="../images/image.png"/>
は動作しませんが、<img src="/images/image.png"/>
または<img src="images/image.png"/>
は(画像をjarファイルの適切な場所に置くと)長くなります。 file:
プロトコルにはこのような制限がなく、リソースを使用してロードすると、相対リンクが正常に機能します。
静的ではなくJavaコードによってHTML文字列が動的に生成される場合は、Sergeyの解決策が最も適しています。
<html>
<head>
<title>The slash at the end of the href is important!</title>
<base href="file:///absolute/path/to/your/docroot/" />
</head>
<body>
<img src="image.png"/>
</body>
</html>
あなたはengine.loadContent(String)
経由で上記のコードをロードする場合は、image.png
が/absolute/path/to/your/docroot/image.png
からロードされます。
私はちょうどHTMLで<base>
タグを使用しても、トリックを行うことが分かりました。
複数のリソースをロードする必要がある場合は、単一の場所で絶対パスを指定するだけで済みますので、この方法は簡単です。
これはJava 8u25のWebView
でテストされています。
は、あなたがメモリにBufferedImageのためにこれを行う方法を知っています。この
<link href="file:css\default.css" rel="stylesheet" type="text/css" />
- 1. オブジェクトおよび/またはJSONからHTMLテンプレートを読み込むライブラリ
- 2. Ruby:システムプロセスによって書き込まれたファイルからの読み込み
- 3. ローカルおよび外部サーバーから画像を読み込み、iphone sdkのwebviewに読み込む方法は?
- 4. C#のリソースから画像を動的に追加および読み込み
- 5. C++のjavaのwriteIntメソッドによって書き込まれたファイルからintを読み込みますか?
- 6. iframeに読み込まれたPHPからページをリロードする
- 7. どのように動的に読み込まれたaspxページのコントロールコレクションにアクセスするには?
- 8. Javascript/HTML>フォーム/入力>ページが読み込まれるたびに自動的に呼び出される
- 9. Judgment webviewページはどのように読み込まれていますか?
- 10. xml.dom.minidom.parseによって読み込まれたXMLを編集できますか?
- 11. 読み込まれたswfから親ムービークリップの変数にアクセスするには
- 12. innerHTMLプロパティがブラウザによって実際に読み込まれるテキストは置き換えられますか?
- 13. これらのmysqlクエリは、ページが読み込まれるたびに実行されますか?
- 14. Android WebViewに読み込まれるHTMLページのタイトルを削除するには
- 15. 動的に読み込まれたユーザーコントロールからポスト値にアクセスする方法
- 16. のみ、このように、私はページが読み込ま移入されるドロップダウンリストを持っている
- 17. 改ページで印刷されたページにCSSおよび/またはjQueryを使用する
- 18. jQueryによって取り込まれたHTML上でtypeface.jsを呼び出す?
- 19. UIScrolViewで動的に読み込まれたラベルにアクセスする
- 20. C#プログラムのWebブラウザアプレット内に読み込まれたWebページから、C#アプリケーションに戻って引数を渡すにはどうすればよいですか?
- 21. 外部CSSがWebページに読み込まれない
- 22. 新しい行が別のプロセスによって書き込まれたときにファイルから読み取る
- 23. 動的に読み込まれたページURLを作成するにはどうすればよいですか?
- 24. cssをhtmlに動的に読み込むには?
- 25. 新しいHTMLページが読み込まれた後にjs関数を読み込む方法は?
- 26. Windows XPおよびWindows 7でシステムオーディオ出力を読み込むにはどうすればよいですか?
- 27. vshost.exeによってロックされたイメージファイルを削除するC#
- 28. は、私は次のHTMLコードを持って、ページの読み込みにGreyboxによって生成されるポップアップボックス(オンロード)
- 29. ページの読み込み時にアニメーションを開始する、読み込まれたページで停止する
- 30. Microsoft Worksおよび/またはJavaからOne Noteファイルを読み取る
を試してみてください? – alistair
@alistair ImageIOクラスを使用することができます。Buffered Imagesを読み取るメソッドがあります。 –