Java8中的外观(JavaFX8)
JavaFX8在外观方面进行了一些更改 ,其中最相关的是新CSS API ,它允许您为控件以及已公开的Skin类创建新CSS属性和伪类。
使用CSS可以改变控件的很多外观,但是CSS只能实现很多功能,而这正是Skin类的用处。从“ UI控件体系结构”快速了解控件的体系结构 :
控件遵循经典的MVC设计模式。 控件是“模型”。 它既包含状态又包含处理该状态的功能。 Control类本身不知道它是如何呈现的或用户交互是什么。 这些任务委托给外观(“视图”),后者可以在内部将视图和控制器功能分离到单独的类中,尽管目前没有针对“控制器”方面的公共API。
如前所述,Skinning的某些方面仍未公开API,而这是Behavior类,但是,按照当前的状态,您已经可以做很多事情。
由于Java8尚未处于GA状态(完整版本),因此仍然缺少有关该API的文档,这使我进入了有关JMetro的最新文章 ,当时我误以为您必须扩展一个控件以更改其对外观类的引用,这就是为什么我创建了ErasableTextField的原因。 但是,正如我后来了解到的,您可以仅通过CSS来更改控件的外观类,如下所示:
.text-field{-fx-skin: "jfxtras.styles.jmetro8.MetroTextFieldSkin";
}
“文本字段”样式类已分配给TextField,因此,当更改“ -fx-skin” CSS属性值时,对该控件将使用的皮肤类的引用也会更改。 因此,ErasableTextField类不再是必需的,并且已从JMetro中删除。
我发现这个设计非常有趣! 如您所见,Skins已与控件完全分离,您所要做的就是将样式表分配给场景,而无需触摸应用程序中的任何代码,并且应用程序的外观会发生根本性的变化,例如JMetro文本字段外观添加了一个清除按钮,只要其中包含文本,该按钮就会显示:
![](/assets/blank.gif)
JMetro向TextField添加一个清除按钮
翻译自: https://www.javacodegeeks.com/2013/12/skinning-in-java8-javafx8.html
Java8中的外观(JavaFX8)相关推荐
- Java8中Lambda表达式的10个例子
Java8中Lambda表达式的10个例子 例1 用Lambda表达式实现Runnable接口 Java代码 //Before Java 8: new Thread(new Runnable() ...
- Java8中Stream流对集合操作
java8中Stream流引入函数式编程思想,主要配合各种接口.lambda表达式.方法引用等方式,为集合的遍历.过滤.映射等提供非常"优雅"的操作方式. Student.java ...
- 字符串拼接还在用StringBuilder?快试试Java8中的StringJoiner吧,真香!
点击关注公众号,Java干货及时送达 前言 之前,我们经常会通过StringBuffer或者StingBuilder对字符串进行拼接,但是你知道Java8中推出的StringJoiner吗?它比前者更 ...
- 【Java8新特性】面试官问我:Java8中创建Stream流有哪几种方式?
写在前面 先说点题外话:不少读者工作几年后,仍然在使用Java7之前版本的方法,对于Java8版本的新特性,甚至是Java7的新特性几乎没有接触过.真心想对这些读者说:你真的需要了解下Java8甚至以 ...
- java8中的default关键字
点击上方蓝色字体,选择"设为星标" 优质文章,及时送达 把代码写优雅,把架构设计优雅是个值得持续追求的事情.有很多银弹,语法糖和套路可以完美解决代码的扩展性,优雅性.今天简单了解下 ...
- 教你怎么样在 Java8 中优雅的避开空指针异常
2019独角兽企业重金招聘Python工程师标准>>> 要说 Java 编程中哪个异常是你印象最深刻的,那 NullPointerException 空指针可以说是臭名昭著的.不要说 ...
- Java8中的HashMap分析
本篇文章是网上多篇文章的精华的总结,结合自己看源代码的一些感悟,其中线程安全性和性能测试部分并未做实践测试,直接是"拿来"网上的博客的. 哈希表概述 哈希表本质上一个数组,数组中每 ...
- java8中的Lamba表达式
1.什么情况有下可以使用lamba 在函数式接口中可以使用 2.什么是函数式接口 只有一个抽象方法的接口称为函数式接口,同时将这个抽象方法称为函数描述符 3.java8中新增了哪些函数式接口 Pred ...
- Java8中的流操作-基本使用性能测试
一.流(Stream)简介 流是 Java8 中 API 的新成员,它允许你以声明式的方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现).这有点儿像是我们操作数据库一样,例如我想要查询出热 ...
最新文章
- python matplotlib 显示opencv的图像
- np.zeros(),np.empty()
- Tomcat 架构原理到架构设计,写得非常好!
- 35个Java代码性能优化总结
- sql语句优化(二)
- LoaderManager使用详解(二)---了解LoaderManager
- python 发送邮件附件及文字信息
- 关于Vue vue-cli安装遇到的一些问题
- ssh框架的构成分析和代码构架小结 .
- DB2数据库下载(v9.7/v10.5/v11.1)
- 数字锁相环matlab仿真,锁相环仿真_MATLAB仿真程序代码_二阶锁相环仿真过程
- 记一次Maya使用入门
- windows用c++获取cpu温度
- Mac Gem Menu for OneNote 激活——应用任何版本
- TSC 打印机开发TSPL黑底白字的打印以及一些问题
- ps -mp pid -o THREAD,tid,time;printf %x\n tid;jstack pid |grep tid -A 30;CPU占用太高追查
- abaqus html安装,abaqus 2016安装错误
- 爆料:Micron计划推出OLC(Octa Level Cell) NAND
- 无线发射器c语言程序代码,单片机编码 无线模块发送与接收 程序
- Unity实现模型点击
热门文章
- ios刷android8.0,颤抖吧 iOS, Android 8.0正式发布!
- java本地创建zk节点
- 这七种回归分析技术,学了不后悔
- 2017尼毕鲁笔试算法题
- netbeans调试_从NetBeans运行和调试WildFly Swarm应用程序
- 朝着理想坚实迈进_坚实原则:开放/封闭原则
- css阴影属性_第三场阴影场与属性访问器接口
- apache fop_Apache FOP与Eclipse和OSGi的集成
- javaserver_如何在JavaServer Pages中使用Salesforce REST API
- OCA第6部分中的Java难题