我正在为我的项目编写一个 JavaFX 自定义对话框。我需要一种变体但快速的模式来显示对话框内容。
我了解controlsFX;实际上我正在使用它,但我想在 WebView 中显示内容,这样它会更可控。
问题是关于 WebView 的大小我想找到文档正文的高度并将 WebView 的大小设置为该高度。
我尝试了以下 javascript hack,但在显示对话框之前,我得到的大小为 0,而在显示对话框之后,该值不可靠。有没有更好的解决方案,或者我应该忘记它并尝试嵌入支持 HTML 3 的 swing 组件?
WebView vw = new WebView();
vw.getEngine().loadContent("<p>This is my text</p><b>Another</b><p> This is a paragraph</p><ul><li>First cause</li><li>Second cause></li></ul>");
vw.setPrefSize(500, 50);
vw.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
// I see that executeScript doesn't work correctly even when the WebView is loaded
Integer h = (Integer) vw.getEngine().executeScript("document.body.offsetHeight");
System.out.println("scriptRES: " + h );
vw.setPrefSize(400, h);
vw.setMinSize(400, h);
vw.setMaxSize(400, h);
}
});
JavaFX 问题跟踪器中的功能请求涵盖了 WebView 的自动调整大小支持:
- RT-25005 WebView 自动首选大小调整 https://javafx-jira.kenai.com/browse/RT-25005
该功能请求当前尚未实施或计划实施。您可以对功能请求进行投票或发表评论。
据我所知,没有解决方法。早期版本的 WebView 似乎可以使用以下代码engine.executeScript("document.width")
and engine.executeScript("document.height")
。但我上次尝试时这些命令不再起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)