我正在开发一个UI。我想增加在两个明确定义的外观(laf)之间进行选择的可能性,并有可能在将来扩展这个选择。我不打算支持任何外观,但我也不想修复给定的可定制laf(我必须支持的lafs之一是标准的windows)。 我的大多数UI都使用标准的swing组件,但是有少量特定于应用程序的UI组件没有意义来概括。它们是JComponent的直接子类。然而,他们必须改变他们的颜色,也许在改变laf时可能会改变其他一些小细节。 JComponent的默认颜色不太适合。我读了最后一天关于UIManager和ComponentUI的文章。为每个组件和外观创建一个自己的ComponentUI可能会起作用,但考虑到我的自定义组件缺乏通用性,以及我计划的lafs之间的微小差异,似乎很复杂。
我想要的是一个更简单的方案,我想大致就是这样(我是lafs的初学者):
我如何以及在何处实施此类计划?像这样的东西必须以某种方式工作,但我找不到位于硬编码颜色(myComponent.setBackground)和开发自己的ComponentUI层次结构之间的任何教程。任何帮助表示赞赏!