java - 用于自定义 Synth 外观和感觉的插图

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

我正在使用 Synth 为我的应用程序实现自定义外观 - 主要是提供自定义版本的 SynthStyle、SynthPainter 和 SynthStyleFactory。

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

然而,设置适当的插图的最佳方式被证明有点棘手。我可以看到各种选项:

  • 重写 SynthStyle 的 getInsets 以返回每个区域的特定插图
  • 使用 SynthStyle.installDefaults 为组件应用边框
  • 将所有插图设置为 (0,0,0,0) 并在绘画方法中进行补偿
  • 创建新的 ComponentUI 委托(delegate)

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

最佳答案

你决定了吗?这是我对事情的看法...

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

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

将所有 insets 设置为 0 是不必要的,因为它们已经从 0 开始了......我一想到重写绘制方法就会非常害怕!这通常是为了对组件进行最后润色,而不是重新定义它们的整个边界。

我不完全确定创建新的 ComponentUI 会有什么帮助,因为这主要与调整大小和绘画有关(如上所示)。

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

关于java - 用于自定义 Synth 外观和感觉的插图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3196005/

相关文章:

java - @RolesAllowed 干扰@RequestMapping

java - 选择什么技术? Spring Batch 还是 Hadoop?

user-interface - 三路合并 - 不同的哲学?

java - JPanel 使用 mouseMoved 方法闪烁

java - 带有 swing 的 TileMap (Java)

java - 适应屏幕尺寸的Android按钮布局

java - 仅部署 java 文件而不部署 WAR

android自定义按钮形状

java - 如何从第一帧文本字段输入文本到第二帧文本区域获取输出

java - 框架中面板的固定尺寸