javafx 打开新窗口
你好,我们又见面了! 这次,新版本与JavaFX 11兼容。
继续阅读以获取详细信息。
JMetro 8.5.7和11.5.7版本
JMetro代码已分为2个分支。 master分支具有Java 8兼容的JMetro版本,“ 11”分支具有Java 11兼容的版本。 以“ 11.”开头的版本。 将适用于Java 11和以“ 8”开头的版本。 将适用于Java 8。
“ 11”分支正在针对JavaFX11进行测试,但可能在JavaFX 9以及即将发布的JavaFX 13上都可以正常工作。
以前的JMetro版本的所有CSS都可以与JavaFX11一起使用,不同之处在于,现在通过CSS引用的新外观也可以使用。
迁移的困难在于,代码已从JavaFX8更改为JavaFX9,并且控件外观已公开且其代码已更改。 此外,模块的引入及其在JavaFX9 +框架代码中的使用,使得访问皮肤所使用的内部类(如“行为”类)成为不可能(在某些情况下不是不可能的,但仍然是不可取的)。
所有皮肤都已转换。 他们是:
- 纽扣皮
在切换按钮和常规按钮上添加弹簧按钮按下动画: https : //pixelduke.com/2018/08/27/fluent-design-button-toggle-button-tooltip/
- TextField外观和PasswordField外观
在“文本字段”的右侧添加一个按钮,该按钮可让您清除文本;对于“密码字段”,该按钮将允许您以纯文本格式查看密码: https : //pixelduke.com/2019/01/20/jmetro-version- 5-2-released /,https://pixelduke.com/2018/09/09/fluent-design-style-text-field-and-password-field-for-java-javafx/
- ProgressBar皮肤
设置不确定的ProgressBar的外观,使其等于Fluent Design规格不确定的ProgressBar的外观: https : //pixelduke.com/2018/09/30/fluent-design-style-progress-bar-for-java-javafx/
- 滑块皮肤
向滑块添加填充。 我认为JavaFX Slider中目前存在的一些明显遗漏。 并添加一个弹出窗口,该弹出窗口告诉用户在拖动拇指时在滑块上设置的确切值: https : //pixelduke.com/2018/08/19/fluent-design-slider-java-javafx /
- 拨动开关皮肤
我为ControlsFX创建的拨动开关控件的新Skin
。 它添加了一些功能和修复: https : //pixelduke.com/2018/08/12/fluent-design-toggle-switch-java-javafx/
8.5.7和11.5.7中的新功能
对于熟悉以前的JMetro版本的开发人员,API已更改。
现在, JMetro
类的构造函数接受一个Scene
和一个Style
或一个Parent
和一个Style
。
然后添加了以下属性:
- 样式
DARK
或LIGHT
样式外观。
- 现场
将应用JMetro主题的Scene
。
- 父母
将应用JMetro主题的Parent
。 如果设置了此属性并且之前还设置了一个Scene
,则对JMetro实例的更改将开始应用于新指定的Parent
而不是应用于Scene
。 如果在设置“ Parent
之后设置“ Scene
,则会发生相反的情况。
- 自动彩色调色板
如果为true,则所有Panes
(例如BorderPane, AnchorPane, StackPane, Pane
等)将自动设置其背景颜色。 如果样式为DARK
则背景将为深色(如黑色),如果样式为LIGHT
则背景将为浅(如白色)。 这样做的缺点是,如果您有将Panes作为中间子级的自定义控件,则通常需要将其背景重新定义为透明,否则您的自定义控件中可能会出现白色/黑色背景补丁。 或者,如果将此属性设置为false(默认值),则可以将样式类.background
添加到应该位于应用程序背景中的Panes中。 然后,它们将根据Style
属性值自动更改其背景颜色。
- getOverridingStylesheets
实际上,这实际上是可以添加样式表的ObservableList
。 该样式表将添加到构成JMetro主题定义的样式表之后。 这意味着添加到此列表的样式表将覆盖JMetro主题设置的定义,以防它们的特异性相同或更高。 因此,这是重新定义和添加覆盖JMetro的自定义样式的好地方。
其他变化
除了上述更改。 现有的JMetro样式已进行了更多修复。 所有JMetro示例均已迁移到“ 11”分支中的JavaFX11。 最终,该代码已被清除,JavaFX2仍然存在CSS代码之类的东西已被删除。
结语
如所承诺的,JMetro的JavaFX9 +版本现在也可用。 我试图推迟此操作,因为我仍然有Java8客户端恰好在使用JMetro,而维护2个版本可能会很麻烦。 这样,master分支中的Java 8版本将暂时保持不变。
该API也已被清理,我认为它现在变得越来越干净。 新属性也已添加到JMetro
类,从而可以进一步自定义JMetro。
翻译自: https://www.javacodegeeks.com/2019/08/new-jmetro-javafx-11-compatible-version.html
javafx 打开新窗口