【发布时间】:2014-11-08 10:38:49
【问题描述】:
我正在用 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);
}
});
【问题讨论】:
标签: java javascript webview javafx