【问题标题】:Specific CSS for JavaFX web viewJavaFX Web 视图的特定 CSS
【发布时间】:2016-03-29 23:29:04
【问题描述】:

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

【问题讨论】:

    标签: css javafx webview


    【解决方案1】:

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

    向 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

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-28
      • 1970-01-01
      • 1970-01-01
      • 2013-11-01
      • 2023-04-08
      相关资源
      最近更新 更多