JavaFX Webview 在 polymer Material 设计元素上出现故障

标签 java javafx polymer material-design

我尝试在 JAVAFX 8 Web View 中显示 polymer Material 设计元素,但其中一些出现了一些图形故障。 例如,当您单击复选框元素时,它就会消失。

我在 Ubuntu 15.04 系统上使用 java 8 sdk update 45。

这是代码:

package sample;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;


import javafx.application.Application;
import javafx.geometry.HPos;
import javafx.geometry.VPos;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.Region;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class Main extends Application {
    private Scene scene;
    @Override public void start(Stage stage) {
        // create the scene
        stage.setTitle("Web View");
        scene = new Scene(new Browser(),750,500, Color.web("#666970"));
        stage.setScene(scene);

        stage.show();
    }

    public static void main(String[] args){
        launch(args);
    }
}

class Browser extends Region {

    final WebView browser = new WebView();
    final WebEngine webEngine = browser.getEngine();

    public Browser() {
        //apply the styles
        getStyleClass().add("browser");
        // load the web page
        webEngine.load("http://www.polymer-project.org/0.5/components/paper-elements/demo.html");
        //add the web view to the scene
        getChildren().add(browser);

    }
    private Node createSpacer() {
        Region spacer = new Region();
        HBox.setHgrow(spacer, Priority.ALWAYS);
        return spacer;
    }

    @Override protected void layoutChildren() {
        double w = getWidth();
        double h = getHeight();
        layoutInArea(browser,0,0,w,h,0, HPos.CENTER, VPos.CENTER);
    }

    @Override protected double computePrefWidth(double height) {
        return 750;
    }

    @Override protected double computePrefHeight(double width) {
        return 500;
    }
}

对此有什么想法吗? 我认为jdk webview并没有完全实现所有的HTML5规范。

最佳答案

对我来说效果很好:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.web.WebView;
import javafx.stage.Stage;

public class Polymer extends Application {
    @Override public void start(Stage stage) {
        WebView webView = new WebView();
        webView.getEngine().load(
            "http://www.polymer-project.org/0.5/components/paper-elements/demo.html"
        );

        System.getProperties().list(System.out);

        stage.setScene(new Scene(webView));
        stage.show();
    }

    public static void main(String[] args){
        launch(args);
    }
}
<小时/>
$ java -version
java version "1.8.0_60-ea"
Java(TM) SE Runtime Environment (build 1.8.0_60-ea-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b12, mixed mode)

OS X 10.9.5

<小时/>

页面本身最初显示速度很慢,但同一页面在 Safari 上显示也很慢(需要几秒钟才能显示)。

Polymer Image

关于JavaFX Webview 在 polymer Material 设计元素上出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876131/

相关文章:

java - 找不到 FXML 路径

javascript - 如何将事件从 Polymer 的 rootScope 向下广播到元素?

java - 如何增加java中的堆大小?

java - JavaFX 中的桌面类

java - Java I/O 的 InputStreamReader 或控制台

JavaFX:使用注释创建的构造函数

css - Polymer 1.0 中的简单样式

css - 如何在 Polymer 中访问孙元素的 css mixin?

java - 递归调用期间发生 StackOverflowError

java - 在日志中按字母顺序排序?