css - JavaFX Web View 的特定 CSS

标签 css javafx webview

如果您使用 JavaFX webview 加载网页,是否可以在 CSS 中以不同于通常在其他浏览器和设备中显示的格式显示它?你会把这个 CSS 嵌入到你的 java 代码中吗?如果是这样,您会怎么做?

最佳答案

我们可以加载一个css文件到WebView。此 CSS 在传统浏览器和 Web View 中的行为方式相同。

将样式表添加到 webview

    stage.setTitle("Web View");
    scene = new Scene(new Browser(),750,500, Color.web("#666970"));
    stage.setScene(scene);
    scene.getStylesheets().add("webviewsample/BrowserToolbar.css");        
    stage.show();

完整示例

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 WebViewSample 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);
        scene.getStylesheets().add("webviewsample/BrowserToolbar.css");        
        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.oracle.com/products/index.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;
    }
}

更多详情请引用this link

关于css - JavaFX Web View 的特定 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36296945/

相关文章:

javascript - 取消选择 DOM 元素

JavaFX Windows 10 native bundle 部署 - 异常访问冲突

android - 我的 CSS 会在 Android 的 WebView 和 IOS UIWebView 中正确呈现吗?

java - 在哪里可以将 google-play-services-ads.jar 包含到我的项目中?

java - 从 eclipse 市场安装了 e(fx)clipse 但运行 JavaFX 应用程序仍然出现错误

javascript - 在 PhoneGap 的浏览器中打开链接(具有非本地 index.html 根目录)

android - 按钮在 WebView 前不可见(API 19 及其中)

html - "<html xmlns="http ://www. w3.org/1999/xhtml">"是做什么的?

html - 调整窗口大小时文本消失

元素的 css 选择器在其层次结构中具有具有特定属性的元素