控制台网站,潍坊网站制作培训,北京精兴装饰公司口碑怎么样,宿迁网站推广JavaFX8在外观方面进行了一些更改 #xff0c;其中最相关的是新CSS API #xff0c;它允许您为控件以及已公开的Skin类创建新CSS属性和伪类。 使用CSS可以改变控件的很多外观#xff0c;但是CSS只能实现很多功能#xff0c;而这正是Skin类的用处。从“ UI控件体系结构”快… 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