/ / JavaFX webview non funziona con gli elementi di design dei materiali polimerici - java, javafx, polimero, design dei materiali

Guasti webview di JavaFX sugli elementi di design dei materiali Polymer: java, javafx, polimero, design dei materiali

Ho cercato di visualizzare elementi di design del materiale polimerico all'interno di una webview JAVAFX 8 e ho riscontrato alcuni difetti grafici su alcuni di essi. Ad esempio, l'elemento checkbox scompare quando si fa clic su di esso.

Sto usando l'aggiornamento java 8 sdk 45 su un sistema Ubuntu 15.04.

Ecco il codice:

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;
}
}

Qualche idea su questo? Penso che la webview jdk non implementa completamente tutte le specifiche HTML5.

risposte:

1 per risposta № 1

Funziona bene per me:

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


La pagina stessa è lenta per la visualizzazione iniziale, ma poi la stessa pagina è lenta anche per la visualizzazione su Safari (la visualizzazione richiede alcuni secondi).

Immagine polimerica