0
我試圖在JAVAFX 8 webview中顯示聚合物材料設計元素,並在其中某些圖形上產生了一些故障。 例如,複選框元素在您點擊時會消失。JavaFX webview故障聚合物材質設計元素
我在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規範。
嗨,謝謝你的回答。我嘗試了更新版本的jdk(和你的1.8u60一樣),看起來複選框已經修復。但是,如果你點擊菜單,並嘗試下拉列表或切換按鈕的例子,你會看到仍然有很多渲染錯誤:(。下拉列表甚至不能在我的Linux機器上使用。 – aacebedo
切換按鈕也適用於我(與Safari完全一樣)。下拉菜單不起作用 - 在http://bugreport.java.com上記錄一個錯誤報告。 – jewelsea