自定义Synth外观和感觉的插图

时间:2010-07-07 15:00:39

标签: java user-interface swing look-and-feel synth

我正在实施自定义Look&感觉使用Synth作为我的应用程序 - 基本上提供SynthStyle,SynthPainter和SynthStyleFactory的自定义版本。

使用任何XML,即一切都是通过Java API完成的。总的来说这很好用。

然而,设置适当插图的最佳方法有点棘手。我可以看到各种选择:

  • 覆盖SynthStyle的getInsets以返回每个Region的特定插入
  • 使用SynthStyle.installDefaults
  • 为组件应用边框
  • 将所有插入设置为(0,0,0,0)并在绘制方法中进行补偿
  • 创建新的ComponentUI委托

最好的方法是什么?为什么?

1 个答案:

答案 0 :(得分:1)

你有没有做出这个决定呢?这是我对事情的看法......

如果您拥有一个具有少量上下文的简单样式,则覆盖getInsets()看起来是一个很好的解决方案。它应该有助于保持整个GUI中的插图一致,只需要一个更改点。

对组件应用空边框似乎有点hackish为此目的。如果需要将自定义边框应用于组件,则可能会无意中删除空边框,除非您覆盖setBorder()方法以使用复合边框。

将所有插入设置为0是不必要的,因为它们已经从0开始......我会非常害怕重写绘制方法!这通常用于为组件添加最后润色,而不是重新定义它们的整个边界。

我不完全确定如何创建新的ComponentUI会有所帮助,因为这主要与尺寸和绘画有关(如上所述)。

我会首先尝试选项1,因为它会对您的应用程序产生全局影响,然后开始计算您想要添加的异常和上下文。