我正在使用一个自定义Button
类,该类实现在Android Material Design中看到的效果。我从这里得到的。
我想实现相同的事情,但是要在MenuBar
with中实现MenuItem
,但是在这个类中,我不能重写createDefaultSkin()
。还有其他方法可以创建这种动态背景吗?我进行了搜索,仅发现了如何更改背景颜色或如何进行颜色的动画过渡,但是没有像Circle
在这种情况下设置自定义形状那样自定义形状的动画。
MenuItem不是控件,因此无法使用createDefaultSkin()
已发现的控件体系结构方法(例如-)将它们换肤。您确实有一些选择。
JavaFX提供了一个CustomMenuItem
类,该类提供了可配置的节点内容属性。因此,您可以通过创建CustomMenuItem实例来自定义菜单项。
也可以通过在标准菜单项上设置图形来自定义标准菜单项。
菜单项也可以通过操作CSS来在没有Java代码的情况下进行相当广泛的自定义,尽管在您引用的android材质设计按钮中无法实现动画效果。
MenuBar是控件,具有外观实现,因此您可以为整个菜单栏提供自己的外观实现(就像您提供的链接为按钮提供自定义外观实现一样)。然后,自定义菜单栏外观负责渲染整个菜单的GUI,并且可以使用您决定提供的任何实现方式进行渲染。
菜单栏是比按钮复杂得多的控件,因此提供自定义菜单栏外观是一项艰巨的任务。要了解内置的MenuBarSkin实现,可以在JavaFX源存储库中搜索MenuBarSkin类。内置菜单栏可能很复杂,因为它可以使用Mac上的系统菜单功能,弹出菜单,应用程序窗口中基于场景图节点的菜单等。内置实现可处理某些UI菜单栏本身的功能以及在其他情况下,代表从菜单项,各种Java帮助程序类以及最终用于菜单显示和管理的底层OS窗口工具包中获取自定义节点内容的代表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句