JavaFX(二)自定义窗口标题栏
一、问题场景
PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮。而JavaFX默认的窗口,不满足需求。
二、解决思路
隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片替换到label对象中进行布局,充当按钮。
三、代码实现
Java 代码,代码举例自定义标题栏样式。
/**
* 程序入口
* @author Light
*/
public class JavaFXTest extends Application { @Override
public void start(Stage stage) { stage.initStyle(StageStyle.TRANSPARENT); VBox root = new VBox();
root.setId("root");
// 引入样式
root.getStylesheets().add(JavaFXTest.class.getResource("/resources/style.css").toString()); //顶部
VBox top = new VBox();
top.setId("top");
top.setPrefSize(300,26);
// 标题栏
AnchorPane title = new AnchorPane();
Label close = new Label();
close.setPrefWidth(33);
close.setPrefHeight(26);
close.setId("winClose");//winClose css样式Id
title.getChildren().add(close);
AnchorPane.setRightAnchor(close, 0.0);
AnchorPane.setTopAnchor(close, 5.0);
top.getChildren().add(title); // 内容
VBox content = new VBox();
content.setPrefWidth(300);
content.setMinHeight(200);
// 组装
root.getChildren().addAll(top, content);
Scene scene = new Scene(root);
stage.setScene(scene); // 显示
stage.show();
} /**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
} }
css 代码:
#root {
-fx-border-width:;-fx-border-color:#000;
}
#top {
-fx-background-color: #4A5459;
}
#winClose {
-fx-cursor:hand;
}
#winClose{
-fx-background-image:url("/resources/winClose_0.png");
-fx-background-repeat:no-repeat;
}
#winClose:hover {
-fx-background-image:url("/resources/winClose_1.png");
}
#winClose:pressed {
-fx-background-image:url("/resources/winClose_2.png");
}
效果演示图:

JavaFX(二)自定义窗口标题栏的更多相关文章
- JavaFX 之自定义窗口标题栏(二)
一.问题场景 PC客户端登录界面仿QQ,上边显示图片,下边显示输入框和登录按钮.而JavaFX默认的窗口,不满足需求. 二.解决思路 隐藏窗口默认的标题栏,使用创建label对象,使用css将按钮图片 ...
- WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome)
WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式.然而,Windows 上的应用就应该有 Windows 应用的样子嘛,在保证自定义的同时也能与其他窗口样式保持一致当 ...
- WPF 自定义窗口标题栏
1.建一个WPF资源词典,在其中定义窗口样式,并在App.xaml中指定其为程序资源 2.写一个继续自windows的类,并指定这个类的Style为第一步资源里的样式 3.新建窗口时,分别把xaml文 ...
- Qt笔记之使用设计器自定义窗口标题栏
1.在窗口显示之前,设置WindowFlags为FramelessWindowHint,以产生一个没有边界的窗口 例如 Widget::Widget(QWidget *parent) : QWidge ...
- Qt 之 自定义窗口标题栏(非常完善)
http://blog.csdn.net/goforwardtostep/article/details/53494800
- WPF编程,使用WindowChrome实现自定义窗口功能的一种方法。
原文:WPF编程,使用WindowChrome实现自定义窗口功能的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/arti ...
- QT笔记之自定义窗口拖拽移动
1.QT自定义标题栏,拖拽标题栏移动窗口(只能拖拽标题,其他位置无法拖拽) 方法一: 转载:http://blog.sina.com.cn/s/blog_4ba5b45e0102e83h.html . ...
- WPF 之 创建继承自Window 基类的自定义窗口基类
开发项目时,按照美工的设计其外边框(包括最大化,最小化,关闭等按钮)自然不同于 Window 自身的,但窗口的外边框及窗口移动.最小化等标题栏操作基本都是一样的.所以通过查看资料,可按如下方法创建继承 ...
- 为Windows窗口标题栏添加新按钮
为Windows窗口标题栏添加新按钮 对于我们熟悉的标准windows窗口来讲,标题栏上一般包含有3个按钮,即最大化按钮,最小化按钮和关闭按钮.你想不想在Windows的窗口标题栏上添加一个新的自 ...
随机推荐
- CentOS搭建LAMP环境
最近准备安装roundcube,需要先搭建一个 LAMP 运行环境,从网上搜索了一下,有不少资料.自己也按部就班安装了一遍,把过程整理了下来. LAMP 是Linux, Apache, MySQL, ...
- JAVA WEB SQLHelper类的封装
在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了 ...
- 对ArrayList 进行深拷贝
ArrayList arr = new ArrayList(); arr.Add()); arr.Add()); arr.Add()); ArrayList arr2 = new ArrayList( ...
- av_interleaved_write_frame 网络不好的情况下返回较慢
用libvlc做直播推流引擎在网络较差的情况下,需要关闭直播,并且重新开播.这个过程中,推流引擎重启,需要的是快速响应.实际上测试结果发现,经常会发生引擎关闭接口卡住.后来跟踪代码,定位到s_rtmp ...
- [转载] I wish you enough
几天前,我在机场无意中听到一对父女告别时最后一刻的对白.广播员已经通知大家准备登机了.他们站在安检口旁边紧紧拥抱,父亲对女儿说:“我爱你,希望你一切都充足!” 女儿回答:“爸爸,我是那么满足我们在一起 ...
- 发现UC/OS-III源码有一处不明白!会不会是BUG.高手过来看看!
http://www.amobbs.com/archiver/tid-4939669.html ———————————————————————————————————————————————————— ...
- codeforces 630 I(规律&&组合)
I - Parking Lot Time Limit:500MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Subm ...
- Session,Cookie 和local storage的区别
以前从没有听说过local storage, 在网上查了一些资料,得到如下结论 从存储位置看,分为服务器端存储和客户端存储两种 服务器端: session 浏览器端: cookie, localSto ...
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式(三)
转载 http://blog.csdn.net/cutesource/article/details/6192163 最后我们再看看NIO方面最著名的框架Mina,抛开Mina有关session和处理 ...
- python crawler0723.py
#!/usr/env python #-*- coding: utf-8 -*- import urllib import urllib2 import random import request ...