JavaFX自定义窗口标题栏

Posted 温柔一刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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自定义窗口标题栏的主要内容,如果未能解决你的问题,请参考以下文章

标签栏自定义按钮图像不显示

状态栏自定义文本颜色

标题栏自定义,文件名显示

ActionBarSherlock - 带有分隔线的操作栏自定义背景

iPad导航栏自定义高度

如何减少iOS导航栏自定义视图的左右间隙