【发布时间】:2013-01-24 13:54:33
【问题描述】:
我正在创建一个继承自 NimbusLookAndFeel 的外观,并告诉我如何注册我自己的组件以使用他们的自定义 Painter。
例如,像这样的ButtonPainter 类的JButton 曾经被绘制。也想知道如何注册不同的状态(例如BACKGROUND_ENABLED、BACKGROUND_FOCUSED ...)
您能指导我如何做到这一点吗?其实我想做的是一个自定义的选项卡式窗格,并且使用他们自己的 Painter。
编辑:嗯,我想我没有解释清楚。
我想制作一个自定义组件,例如MyCustomTabbedPane,这个风格化了继承自 Nimbus 的外观。我可以注册自己的 UI 类,例如 MyCustomTabbedPaneUI 制作 uiDefault.put("MyCustomTabbedPaneUI", new MyCustomTabbedPaneUI())?
我如何制作自己的 UI 类,这个类应该有什么逻辑?
还有一个问题,我如何分配这个类 Painter,例如 MyCustomTabbedPanePainter 定义我自己的组件状态,就像 Nimbus 一样,例如 BACKGROUND_ENABLED。
感谢和问候!
【问题讨论】:
-
1) JTabbedPane 由@aephyr 在代码中解决,此代码构造尽可能简单,2) 创建一个实现所有必需方法的类并将其直接放入 UIManager,3) Painter 是方法填充背景(例如),这个类可以只为整个应用程序编写一次,并为方法或属性使用重载,可能比这个论坛上的示例更长,但整个类或JVM只有一个类,e.i.
标签: java swing custom-component look-and-feel nimbus