javafx窗口风格、包括自定义标题栏

1、窗口风格设置:(primaryStage.initStyle(StageStyle);)

 

StageStyle有几种类型

1) DECORATED——白色背景,带有最小化/最大化/关闭等有操作系统平台装饰( 默认设置)

2) UNDECORATED——白色背景,没有操作系统平台装饰

3) TRANSPARENT——透明背景,没有操作系统平台装饰

4) UTILITY——白色背景,只有关闭操作系统平台装饰

5) UNIFIED——有操作系统平台装饰,消除装饰和内容之间的边框,内容背景和边框背景一致

2、自定义标题栏:

 

首先去掉系统自带的标题栏。直接设置窗口风格,设置为没有操作系统平台装饰的,然后加上自定义布局,直接上代码

		GridPane gridPane = new GridPane();
		gridPane.setStyle("-fx-background-color: rgb(78.0,163.0,248
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
JavaFX 中可以使用 StageStyle 属性来控制窗口的外观和行为。为了自定义窗口,需要使用 StageStyle.UNDECORATED 样式,然后在窗口中添加自定义的控件和事件。 以下是一个简单的示例,演示如何创建一个自定义窗口: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.stage.StageStyle; public class CustomWindow extends Application { private double xOffset = 0; private double yOffset = 0; @Override public void start(Stage primaryStage) throws Exception { // 创建一个根节点 StackPane root = new StackPane(); root.setStyle("-fx-background-color: #FFFFFF; -fx-border-color: #000000; -fx-border-width: 1px;"); // 创建一个按钮 Button closeButton = new Button("关闭"); closeButton.setOnAction(event -> primaryStage.close()); // 将按钮添加到根节点 root.getChildren().add(closeButton); // 创建一个场景 Scene scene = new Scene(root, 300, 200); // 设置场景的样式 primaryStage.initStyle(StageStyle.UNDECORATED); // 添加鼠标事件,使窗口可以拖动 root.setOnMousePressed(event -> { xOffset = event.getSceneX(); yOffset = event.getSceneY(); }); root.setOnMouseDragged(event -> { primaryStage.setX(event.getScreenX() - xOffset); primaryStage.setY(event.getScreenY() - yOffset); }); // 设置舞台的场景并显示 primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 在这个示例中,我们创建了一个 StackPane 作为根节点,并设置了它的样式为白色背景和黑色边框。然后,我们创建了一个按钮并将它添加到根节点上。 接下来,我们创建了一个 Scene 并将根节点作为参数传递给它。我们还使用了 StageStyle.UNDECORATED 样式来隐藏窗口的默认装饰和标题栏。 最后,我们添加了鼠标事件,使窗口可以拖动。当用户按下鼠标时,我们记录下鼠标的位置;当用户拖动鼠标时,我们根据鼠标的位置移动窗口。 启动应用程序后,将显示一个没有标题栏窗口,您可以在窗口中移动按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值