自定义Swing外观与自定义组件相比较?

3
我正在使用Swing编写游戏,并希望为GUI实现独特的“蒸汽朋克”风格。这将需要一些动画组件、厚重金属边框等。
我知道通过覆盖paintComponent并在该方法中进行所有自定义轻量级组件的渲染,可以获得不错的效果。
这是正确的方法吗?还是应该考虑开发一个全新的可插拔外观和感觉?
每种方法的优缺点是什么?

请看几周前我对一个几乎相同问题的回答:我的回答 - Kirill
2个回答

4
个人认为,您应该选择全新的外观和感觉...您还可以基于 Synth L&F 来构建它,而不是自己编写所有内容。 Nimbus 是在 Synth 基础上编写的 L&F 的一个示例。

谢谢!这确实是个好建议:我设法让 Synth 的定制版本在几个小时内运行,并呈现出一些全新的组件。 - mikera
+1 for Synth LAF,它是一个很棒的LAF(如果基本的Synth UI对象是公共的而不是友好的话,那就更好了...咳咳)。**@mikera** 如果你考虑到有很多变化和大量使用的应用程序,最好不要使用XML配置和图像绘制,而是在代码中实现自定义绘制器和配置(参见Java7中的Nimbus实现)。这样可以节省很多内存,并且更易于管理。 - Taisin

3

创建一个新的外观和感觉需要更长的时间,但可以保持您的代码简单。 (如果您只需要进行少量更改,则不值得花费这些精力。) 例如,动画可以在外观和感觉部分编码,因此您无需在组件中担心它。我建议编辑与您所需相近的外观和感觉。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接