首页 > 代码库 > JavaFX(二)自定义窗口标题栏
JavaFX(二)自定义窗口标题栏
问题场景:
PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮。而JavaFX默认的窗口,不满足需求。
思路:
隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片替换到label对象中进行布局,充当按钮。
实现:
代码片段:
stage.initStyle(StageStyle.TRANSPARENT);//隐藏默认标题栏
代码片段:
Label close = new Label();
close.setTooltip(new Tooltip("关闭"));
close.setPrefWidth(33);
close.setPrefHeight(26);
close.setId("winClose");//winClose css样式Id
close.setOnMouseClicked(关闭事件);//此处自行定义事件处理器
css代码片段:
#winClose {
-fx-cursor:hand;
}
#winClose{
-fx-background-image:url("/com/bb/winClose_0.png");
-fx-background-repeat:no-repeat;
}
#winClose:hover {
-fx-background-image:url("/com/bb/winClose_1.png");
}
#winClose:pressed {
-fx-background-image:url("/com/bb/winClose_2.png");
}
JavaFX有很多布局管理的对象,可以轻松对组件进行布局。笔者在项目中使用的是AnchorPane对象。
JavaFX(二)自定义窗口标题栏