JavaFX 圆角窗口可以通过使用 'StageStyle.TRANSPARENT' 和 'Stage.setShape()' 方法来实现。

以下是一个简单的示例代码:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class RoundedCornerWindow extends Application {

    @Override
    public void start(Stage primaryStage) {
        // 创建一个 StackPane 作为窗口的根布局
        StackPane root = new StackPane();
        root.setStyle("-fx-background-color: transparent;"); // 设置根布局的背景色为透明

        // 创建一个矩形,设置圆角半径为 20
        Rectangle rect = new Rectangle(400, 300);
        rect.setArcWidth(20);
        rect.setArcHeight(20);
        rect.setFill(Color.WHITE); // 设置矩形的填充色为白色
        root.getChildren().add(rect);

        // 创建一个场景,并设置根布局为场景的根节点
        Scene scene = new Scene(root, 400, 300);
        scene.setFill(Color.TRANSPARENT); // 设置场景的背景色为透明

        // 设置舞台的样式为透明,并设置舞台的形状为矩形
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.setScene(scene);
        primaryStage.show();

        // 设置窗口的形状为矩形
        root.setClip(rect);
    }

    public static void main(String[] args) {
        launch(args);
    }
}

在此示例中,我们创建了一个 StackPane 作为窗口的根布局,并设置了根布局的背景色为透明。然后,我们创建了一个矩形,并设置其圆角半径为 20。接着,我们将矩形添加到根布局中,并创建了一个场景,将根布局设置为场景的根节点,并设置场景的背景色为透明。最后,我们将舞台的样式设置为透明,并将舞台的形状设置为矩形,然后显示窗口。

为了实现圆角窗口,我们还需要将根布局裁剪成矩形的形状。我们可以使用 'StackPane.setClip()' 方法来实现。在上面的示例中,我们在窗口显示后,通过调用 'root.setClip(rect)' 方法将根布局裁剪成矩形的形状。

JavaFX 圆角窗口实现指南

原文地址: https://www.cveoy.top/t/topic/oX3m 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录