You can place your string html content in a file in the same package as the Java class and use the engine.load(String url)
method instead:
engine.load(getClass().getResource("mypage.html").toExternalForm());
When you do this, all relative links in the html page will resolve to resources (e.g. css and image files) in your Java package.
Beware that if you are loading a resource that is located in a jar file, that the jar:
protocol does not understand relative links with parent specifiers. E.g., <img src="../images/image.png"/>
will not work, but <img src="/images/image.png"/>
or <img src="images/image.png"/>
will as long (as you put the image in the appropriate location in the jar file). The file:
protocol does not have such restrictions and ..
relative links will work fine when the resources are loaded using it.
If the html string is dynamically generated by your java code rather than static, then Sergey's solution is probably best.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…