java fx 皮肤_JavaFX 皮肤功能

作为RIA技术之一,为了让应用程序的界面看起来更加的漂亮或者更有个性,皮肤功能自然是必不可少的。

在JavaFX中,可以使用CSS样式表来进行皮肤的更换。不过JavaFX中的CSS是基于W3C CSS version 2.1,但又不完全相同。

JavaFX中的换肤有几种方式。

1.完全重新定义的控件样式

我们首先创建一个CSS文件,命名为skin1.css,在里面定义一个Button的样式。

.CustomButton{

-fx-background-color: #aaffff;

-fx-text-fill: #000000

}

如上所示,只是简单的改变背景色和文本颜色。

当然大家很容易看出来,与标准的CSS相差不大。

那么,我们就在程序中使用一下看看效果。

新建一个JavaFX Project,写下如下代码。

public class Skintest extends Application {public static void main(String[] args) {

launch(args);

}

@Override

public void start(Stage primaryStage) {

primaryStage.setTitle("Test Skin in JavaFX");

final Button btn = new Button("I am a Button");StackPane root = new StackPane();

Scene scene = new Scene(root, 800, 600);

scene.getStylesheets().add("skin1.css");

btn.getStyleClass().add("CustomButton");

root.getChildren().add(btn);

primaryStage.setScene(scene);

primaryStage.show();

}

}

在程序只创建了一个Button。

首先通过Scene.getStylesheets().add(String str)方法进行添加样式。

然后使用button.getStyleClass().add(String str)方法让Button应用这个样式。

1342281906_9595.jpg

右上图可以看到,这个Button已经与默认的按钮完全不一样了。

下面我们在skin1.css中,新添加一个Button的样式,暂命名为CustomButton2。

.CustomButton2{

-fx-background-color: #000000;

-fx-text-fill: #FFFFFF

}

然后添加Button的事件,让Button在点击后,应用这个样式。

btn.setOnAction(new EventHandler() {

@Override

public void handle(ActionEvent event) {

btn.getStyleClass().add("CustomButton1");

}

});

记住如果在事件中使用控件,定义的时候必须定义为final类型。

那么,我们运行之后,点击Button看看。

1342282179_8884.jpg

如图所示,点击之后,Button应用了新的样式,变成了黑底白字了。

怎么样?虽然只是简单的改变了背景色和文字色,但其实看起来效果还是不错的。

2.重写控件的样式

有的人会觉得,每个控件都设置一次样式很麻烦,为何不能直接设置所有Button的样式呢?当然,JavaFX也提供这

个功能,我们只需要把上面的skin1.css中的.CustomButton改为.button,就会覆盖Button控件的样式。

那么我们更改为.button后,再添加一个Button看看运行的效果。

1342283027_3487.jpg

你会发现,没有单独设置Button的样式,但是将skin1.css添加进Scene的StyleSheets中后,所有的Button样式都改变了。

3.更改整个程序的样式

同样的,既然可以更改所有button的样式,我们也可以进行少许修改,就能更改整个应用软件的风格了。

我们只需要添加.root的样式即可。

.root{

-fx-font-size: 16pt;

-fx-base: rgb(255, 145, 47);

-fx-background: rgb(255, 255, 255);

}

然后往代码中添加几个其他的控件,运行看看。

1342283566_1758.jpg

大家可以看到,整体的风格都改变了。这也是更换主题的很方便的方法。

另外, CSS中有class styles 和id styles,同样的JavaFX中也有。对于控件而言只需要setId()即可应用idstyles。

OK,时间已经很晚了,JavaFX的换肤功能就讲到这里了。该睡觉去了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LaTex实战笔记 2-文档层次与结构

LaTeX 支持结构化文档的编写。 什么是结构化文档?会议论文、期刊论文、学位论文,这类有统一结构、统一版式的文档,是典型的结构化文档。而报刊文章的结构则因人而异,因文而异,是典型的非结构化文档。 1. 结构化文档的…

java爬取小说

使用Java爬取网站:http://www.shicimingju.com的小说内容 代码详解 1.在本地创建存储位置 2.编写正则表达式 3.循环获取内容 4.把内容存入文件夹中 5.判断成功或失败 效果演示 代码展示 package text;import java.io.BufferedReader;import java.io.BufferedWri…

智能家居(3)智能交互的竞品分析

智能家居系统与产品的交互方式,早已从物理按键、遥控操作发展为以触摸面板手机APP作为主要的交互方式,并已经实现了语音交互、生物识别等新技术的导入,未来可能会流行基于视觉的交互方式、基于机器学习的无感交互方式。融合这些交互方式的多模…

java爬取单张图片

我们经常需要在网页上获取一些图片,有的图片我们是可以直接下载使用,有的图片需要我们登陆账号甚至付费下载,所以在此我写了一个使用Java爬取任意网页单张图片的爬虫。 代码解析 1.图片的网络位置 2.进行访问和下载 3.建立本地存储位置 效果…

LaTex实战笔记 3-宏包与控制命令

1. LaTeX 命令的基本架构 LaTex 排版系统对于格式控制、公式编辑比 Word 更加灵活、准确。 Tex 环境中,字符、图片等各种文档内容都装在不同的盒子(box)容器内。这些盒子根据 Tex/Latex 的默认规则和控制命令组合为更大的盒子。字符组合为单…

【OpenCV 例程200篇】201. 图像的颜色空间转换

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】201. 图像的颜色空间转换图像的色彩空间基础图像的…

CSDN 搜索工具使用体验与对比分析

搜索工具是 C 站的核心产品,也是广大计算机学习读者的最爱。基于 CSDN 的程序设计与基于 Baidu 的程序设计并肩,成为计算机学习者的最爱。 本文对几种常用的计算机行业相关搜索工具进行对比分析。 本次对比分析只针对各网站的 PC 端网页版。 文章目录0…

【OpenCV 例程200篇】202. 查表快速替换(cv.LUT)

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】202. 查表快速替换(cv.LUT)…

LaTex实战笔记 4-字体格式

LaTeX 中的字体有 5 种属性: 字体编码:正文字体编码,数学字体编码字体族:罗马字体,无衬线字体,打字机字体(等宽字体)等字体系列:粗细,宽度字体形状&#xff…

PHP在哪里执行_php文件放在哪运行

下载一个WampServer (集成环境)安装后,把要运行的放到安装目录下的www(我安装在D盘:D:\wamp\wamp\www),然后本机访问localhost/text.php(text.php是你要运行的php文件)。WampServer(推荐学习:PHP编程从入门到精通)WampServer是一款…

LaTex实战笔记 5-段落格式

2.1 换行和分段 通常 LATEX 会自动换行,也可以用\\ 或\newline 命令来强制换行。 开始一个段落,可以通过插入一个空行,也可以使用 \par 命令来强制分段。 连续两个换行符就是一个空行,可以将文字分段。但连续多个换行符&#xff…

【OpenCV 例程200篇】203. 伪彩色图像处理

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】203. 伪彩色图像处理什么是伪彩色图像?…

php post 丢失,php post大量数据时发现数据丢失问题解决方法,post数据丢失_PHP教程...

php post大量数据时发现数据丢失问题解决方法,post数据丢失解决办法:在php.ini中将max_input_vars调大改为5000就可以了原因追查:from的enctype”multipart/form-data”php版本5.6.6问题:部分POST数据接收不到追源代码发现是php中…

Jquery鼠标点击出现文字

点击鼠标左键出现文字效果。 原理解说 1.首先确定你是不是点的鼠标左键&#xff1b; 2.文字效果要出现在你鼠标点击的地方&#xff1b; 3.点击后文字出现一个由下往上的显示效果&#xff1b; 4.点击完成后固定时间内还得消失 效果演示 代码演示 <!DOCTYPE html> <h…

【OpenCV 例程200篇】204. 图像的色彩风格滤镜

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】204. 图像的色彩风格滤镜4. 图像的色彩风格滤镜4.1…

php文件夹重命名,PHP重命名和移动目录

PHP重命名目录使用PHP的rename()函数可以重命名目录。如果rename()函数执行成功&#xff0c;则返回true&#xff0c;否则返回false。复制代码PHP重命名目录示例-www.baike369.com$state rename(folder,folder2); // 将folder文件夹重命名为folder2文件夹if($state){echo 重命名…

【OpenCV 例程200篇】205. 调节色彩平衡/饱和度/明度

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 文章目录【youcans 的 OpenCV 例程200篇】205. 调节色彩平衡/饱和度/明度4.3 自己调节色彩平…

自定义U盘图标

现在几乎人手一个U盘&#xff0c;作为很隐私的东西&#xff0c;U盘的使用场景却非常复杂&#xff0c;经常需要插入各种各样的设备… 那么如何让自己的U盘与众不同&#xff0c;在插入后给人留下深刻的印象呢&#xff1f; 今天就教给大家如何DIY自己的U盘图标。 1. 下载ico图标…

C站 APP 搜索工具使用体验与对比

文章目录0. 对比的 APP1. APP 首页布局2. 搜索页面的设计3. 关键词输入的过程4. 搜索结果的页面5. 搜索内容的展现6. 搜索结果的内容质量6.1 搜索内容质量评分6.2 对搜索内容评价的分析7. 小结0. 对比的 APP 垂直行业 APP&#xff1a;CSDN&#xff0c;稀土掘金&#xff0c;极客…

【OpenCV 例程200篇】206. Photoshop 色阶调整算法

OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换&#xff08;cv.LUT&#xff09; 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 206. Photoshop 色阶调整算法 【youcans 的 OpenCV 例程200篇】206. Photoshop 色阶调整算法…