How to make an overlay on top of JavaFX 2 webview?

后端 未结 2 450
广开言路
广开言路 2020-12-09 22:27

Is it possible to to overlay any JavaFx2 widgets or canvas on top of a JavaFX 2 webview?

I want to generate a transparent heatmap by means of JavaFX 2 on top of a w

2条回答
  •  粉色の甜心
    2020-12-09 23:15

    Do you mean something like this:

    import javafx.application.Application;
    import javafx.scene.Scene;
    import javafx.scene.layout.Pane;
    import javafx.scene.layout.StackPane;
    import javafx.scene.paint.Color;
    import javafx.scene.shape.Rectangle;
    import javafx.scene.shape.RectangleBuilder;
    import javafx.scene.text.Font;
    import javafx.scene.text.FontWeight;
    import javafx.scene.text.Text;
    import javafx.scene.text.TextBuilder;
    import javafx.scene.web.WebView;
    import javafx.stage.Stage;
    
    public class Demo extends Application {
    
        @Override
        public void start(Stage primaryStage) {
            WebView webView = new WebView();
            webView.getEngine().load("http://www.google.com");
            StackPane root = new StackPane();
            root.getChildren().addAll(webView, getOverlay());
            primaryStage.setScene(new Scene(root, 300, 250));
            primaryStage.show();
        }
    
         private Pane getOverlay() {
            StackPane p = new StackPane();
            Rectangle r = RectangleBuilder.create()
                    .height(100).width(100)
                    .arcHeight(40).arcWidth(40)
                    .stroke(Color.RED)
                    .fill(Color.web("red", 0.1))
                    .build();
    
            Text txt=TextBuilder.create().text("Overlay")
                    .font(Font.font("Arial", FontWeight.BOLD, 18))
                    .fill(Color.BLUE)
                    .build();
             p.getChildren().addAll(r, txt);
             return p;
        }
    
         public static void main(String[] args) {
            launch(args);
        }
    }
    

提交回复
热议问题