具有Nimbus外观和感觉的自定义组件和画家

时间:2013-01-24 13:54:33

标签: java swing custom-component look-and-feel nimbus

我正在创建一个继承自NimbusLookAndFeel的外观,让我知道如何注册我自己的组件以使用他们的自定义Painter。

例如,像JButton这样的ButtonPainter类曾经被绘制过。也想知道如何注册不同的状态(例如BACKGROUND_ENABLEDBACKGROUND_FOCUSED ......)

你能告诉我怎么做吗?实际上我想做的是一个自定义选项卡式窗格,它使用自己的Painter。

编辑:嗯,我想我没有解释清楚。

我想创建一个自定义组件,例如MyCustomTabbedPane,这样可以从Nimbus继承的外观中感受到风格。我可以注册我自己的UI类,例如MyCustomTabbedPaneUI制作uiDefault.put("MyCustomTabbedPaneUI", new MyCustomTabbedPaneUI())吗?

我如何创建自己的UI类,这个类应该有什么逻辑?

另一个问题是,我如何分配这个类Painter,例如MyCustomTabbedPanePainter定义我自己的组件状态,就像Nimbus一样,例如BACKGROUND_ENABLED

谢谢和问候!

1 个答案:

答案 0 :(得分:3)

  1. 首选方式,有一些Look and Feels based on Nimbus

  2. 另一种选择,自定义Nimbus Look and Feel有一些自定义的解决方法,其中最复杂的是NimbusThemeCreator by @aephyr(Java6的导入???)

  3. 最难的方法,必须创建own xml file (see point 2nd.)并覆盖all keys for UIManager,一个地方的所有内容都是UIManager Defaults by @camickr

  4. 最简单的方法是仅覆盖Primary Colors & Secondary Colors,然后应用Colors&适用于大多数JComponents

  5. RenderersHighlighter是separete问题,必须决定是否使用标准或覆盖此密钥,例如XxxRenderer是首选,如果您覆盖{对于具体的Nimbus UIDefaults,{1}}和RendererJComponent取自Colors而不是Renderer