0

I'm trying to achieve this effect here but on a static background (without the scrolling). I'm getting this weird clip on my results though (without the frost effect). I think I know where the problem is in my code but I'm not sure how to solve it.

public class App extends Application {
    private static final double BLUR_AMOUNT = 80;
    private static final Effect frostEffect = new BoxBlur(BLUR_AMOUNT, BLUR_AMOUNT, 3);
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {
        ImageView background = new ImageView(bgImage);
        StackPane centerBlurredPane = (StackPane) frozenCenterUI();
        BorderPane centerContent = new BorderPane();
        centerContent.setCenter(new Text("Center"));
        centerContent.setTop(new Text("Top"));
        centerContent.setLeft(new Text("Left"));
        centerContent.setRight(new Text("Right"));
        centerBlurredPane.getChildren.add(centerContent);
        Scene scene = new Scene(new StackPane(background,centerBlurredPane),414, 849);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

      private Node frozenCenterUI() {
        Image frostImage = background.snapshot(new SnapshotParameters(), null);
        ImageView frost = new ImageView(frostImage);
        Rectangle filler = new Rectangle(24, 762, 366, 696);
        filler.setArcHeight(50);
        filler.setArcWidth(50);
        filler.setFill(Color.AZURE);
        Pane frostPane = new Pane(frost);
        frostPane.setEffect(frostEffect);
        StackPane frostView = new StackPane(filler, frostPane);
        Rectangle clipShape = new Rectangle(24, 762, 366, 696);
        frostView.setClip(clipShape);
        return frostView;
    }
}

This is what i'm getting, however. I want to apply frost on the white area here. What should my clip shape be?

Here's my background image, backgroundImage

Edit: I found that if I change my clipShape to have the same dimensions as the scene, then I get the desired effect. However, the BorderPane I added to the frozen pane is not constrained to it, but actually stretches and fills the entire window.

0 Answers0