【问题标题】:Insets for custom Synth look and feel用于自定义 Synth 外观的插图
【发布时间】:2010-07-07 15:00:39
【问题描述】:
我正在为我的应用程序使用 Synth 实现自定义外观 - 基本上提供 SynthStyle、SynthPainter 和 SynthStyleFactory 的自定义版本。
我不使用任何 XML,即一切都是通过 Java API 完成的。一般来说,这工作得很好。
然而,设置适当插图的最佳方法有点棘手。我可以看到各种选项:
- 覆盖 SynthStyle 的 getInsets 以返回每个区域的特定插图
- 使用 SynthStyle.installDefaults 为组件应用边框
- 将所有插图设置为 (0,0,0,0) 并在绘画方法中进行补偿
- 创建新的 ComponentUI 委托
最好的方法是什么?为什么?
【问题讨论】:
标签:
java
user-interface
swing
look-and-feel
synth
【解决方案1】:
您对此做出决定了吗?这是我对事情的看法...
如果您有一个简单的样式和少量上下文,覆盖getInsets() 看起来是一个不错的解决方案。它应该有助于在整个 GUI 中保持插图的一致性,只需进行一点更改。
为此目的,对组件应用空边框似乎有点不合时宜。如果您需要为组件应用自定义边框,那么您可能会无意中删除空边框,除非您覆盖 setBorder() 方法以使用复合边框。
将所有插图设置为 0 是不必要的,因为它们已经从 0 开始......我会非常害怕重写绘画方法的想法!这通常是为了给组件添加最后的润色,而不是重新定义它们的整个边界。
我不完全确定创建一个新的 ComponentUI 会有什么帮助,因为这主要与尺寸和绘画有关(如上)。
我会先尝试选项 1,因为它会对您的应用程序产生全局影响,然后开始计算您想要放入哪些异常和上下文。