我正在创建一个继承自NimbusLookAndFeel
的外观,让我知道如何注册我自己的组件以使用他们的自定义Painter。
例如,像JButton
这样的ButtonPainter
类曾经被绘制过。也想知道如何注册不同的状态(例如BACKGROUND_ENABLED
,BACKGROUND_FOCUSED
......)
你能告诉我怎么做吗?实际上我想做的是一个自定义选项卡式窗格,它使用自己的Painter。
编辑:嗯,我想我没有解释清楚。
我想创建一个自定义组件,例如MyCustomTabbedPane
,这样可以从Nimbus继承的外观中感受到风格。我可以注册我自己的UI类,例如MyCustomTabbedPaneUI
制作uiDefault.put("MyCustomTabbedPaneUI", new MyCustomTabbedPaneUI())
吗?
我如何创建自己的UI类,这个类应该有什么逻辑?
另一个问题是,我如何分配这个类Painter,例如MyCustomTabbedPanePainter
定义我自己的组件状态,就像Nimbus一样,例如BACKGROUND_ENABLED
。
谢谢和问候!
答案 0 :(得分:3)
首选方式,有一些Look and Feels based on Nimbus
另一种选择,自定义Nimbus Look and Feel
有一些自定义的解决方法,其中最复杂的是NimbusThemeCreator by @aephyr(Java6的导入???)
最难的方法,必须创建own xml file (see point 2nd.)
并覆盖all keys for UIManager
,一个地方的所有内容都是UIManager Defaults by @camickr
最简单的方法是仅覆盖Primary Colors & Secondary Colors,然后应用Colors
&适用于大多数JComponents
Renderers
和Highlighter
是separete问题,必须决定是否使用标准或覆盖此密钥,例如XxxRenderer
是首选,如果您覆盖{对于具体的Nimbus UIDefaults
,{1}}和Renderer
,JComponent
取自Colors
而不是Renderer