java8 javafx

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文本字段外观添加了一个清除按钮,只要其中包含文本,该按钮就会显示:

JMetro向TextField添加一个清除按钮

参考: Pixel Duke博客上我们JCG合作伙伴 Pedro Duque Vieira的Java8外观(JavaFX8) 。

翻译自: https://www.javacodegeeks.com/2013/12/skinning-in-java8-javafx8.html

java8 javafx

java8 javafx_Java8中的外观(JavaFX8)相关推荐

  1. 第18课:生活中的外观模式——学妹别慌,学长帮你

    用程序来模拟生活 从剧情中思考外观模式 外观模式 外观模式的模型抽象 类图 模型说明 设计要点 优缺点 实战应用 应用场景 [故事剧情] Tony 有个爱好,喜欢跑步.因为住的离北体(北京体育大学)比 ...

  2. Java8中的外观(JavaFX8)

    JavaFX8在外观方面进行了一些更改 ,其中最相关的是新CSS API ,它允许您为控件以及已公开的Skin类创建新CSS属性和伪类. 使用CSS可以改变控件的很多外观,但是CSS只能实现很多功能, ...

  3. 【java8】中stream的.findAny().orElse (null) 是什么意思?

    举例: List<User> userList = new ArrayList(); User user1 = userList.stream().filter(user -> &q ...

  4. Java8 Map中新增的方法使用总结

    前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, ...

  5. java设计模式 订阅模式_Java中的外观设计模式

    java设计模式 订阅模式 立面是指建筑物的外观. 当穿过街道时,我们所看到的只是建筑物的外观. 该工作面抽象了建筑物的所有复杂实现细节. 同样, 外观设计模式旨在为子系统中的一组接口提供统一的接口. ...

  6. Java中的外观设计模式

    立面是指建筑物的外观. 当穿过街道时,我们所看到的只是建筑物的外观. 该图面抽象了建筑物的所有复杂实施细节. 同样, 外观设计模式旨在为子系统中的一组接口提供统一的接口. 这个统一的接口对客户端隐藏了 ...

  7. java reduce 分组_使用JAVA8 stream中三个参数的reduce方法对List进行分组统计

    背景 平时在编写前端代码时,习惯使用lodash来编写'野生'的JavaScript; lodash提供来一套完整的API对JS对象(Array,Object,Collection等)进行操作,这其中 ...

  8. java设计模式工厂模式_Java中的外观设计模式

    java设计模式工厂模式 Facade Design Pattern is one of the Structural design patterns (such as Adapter pattern ...

  9. 全新iMac开发中!外观、屏幕、性能全面升级

    除了全新14英寸和16 英寸MacBook Pro外,根据彭博社消息,苹果正在开发全新 iMac.全新 iMac 采用全新设计,窄边框屏幕.底部的金属下巴被移除,整体外观类似于 Pro Display ...

最新文章

  1. 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象
  2. 看懂SqlServer查询计划
  3. opencv3 ubuntu安装脚本
  4. 高并发-【抢红包案例】之三:使用乐观锁方式修复红包超发的bug
  5. oracle删除表空间中的表,ORACLE删除表空间中的所有表
  6. qt 进程打开excel_Qt QAxObject操作excel文件过程总结(转):(示例代码)
  7. app上传头像处理Java_java后台加安卓端实现头像上传功能
  8. 使用Xamarin.Forms的企业应用程序模式(电子书)--依赖注入
  9. 32k通过地址跳转到函数_【HYPERLINK】函数技巧,你一定要知道的!!!
  10. Java架构师具备的特点有哪些?
  11. linux大一实验报告,linux实验报告
  12. elementUI压缩图片和将图片转成base64格式
  13. intellij idea 的常用有用快捷键
  14. Asp.net core WebApi 使用Swagger生成帮助页实例
  15. 最全最新cpu显卡天梯图_2018 年新近详细CPU、显卡天梯图
  16. Redis的安装配置与使用
  17. 推荐5款常用编程文本编辑器
  18. idea或者goland更改主题颜色背景颜色
  19. 如何查看ps图片中边框的背景颜色
  20. CSS绘制常见的几何图形

热门文章

  1. 【暴力】I Liked Matrix!
  2. 1D/1D动态规划的三种优化方法
  3. Java 反射机制深入研究
  4. Spring AOP注解为什么失效?90%Java程序员不知道
  5. Redis(案例二:高并发商品首页热点数据开发实战)
  6. FastDFS(分布式文件系统)
  7. 2018蓝桥杯省赛---java---B---1(第几天)
  8. 钟 docker讲解
  9. python django 是啥_python的django做什么的
  10. mysql 时间 1_(转)mysql日期时间函数1