【发布时间】:2011-09-02 13:34:32
【问题描述】:
我刚刚查看了来自 JSlider SourceCode 的源代码 如果发现了很多 repaint() 的预期,因为模板模式。 但我的问题是我没有找到实际绘制 JSlider 的绘制方法。
谁能解释一下这个组件是如何绘制的?
【问题讨论】:
标签: java swing components paint
我刚刚查看了来自 JSlider SourceCode 的源代码 如果发现了很多 repaint() 的预期,因为模板模式。 但我的问题是我没有找到实际绘制 JSlider 的绘制方法。
谁能解释一下这个组件是如何绘制的?
【问题讨论】:
标签: java swing components paint
Swing 组件通常由其关联的 UI 类绘制。 UI 类特定于每个外观。这就是让 JSlider 在不同平台上具有“原生”感觉甚至自定义感觉的方式。每个 Swing 组件都有一个 UI 类,JSlider 有 SliderUI,它有多种风格,例如:MetalSliderUI、WindowsSliderUI 和 SynthSliderUI。
您没有在 JSlider 中找到绘制方法,因为绘制方法在父类 JComponent 中。 JComponent 的绘制方法(paint、paintComponent、repaint 等)进行一些设置,然后将工作委托给由 JSlider 提供的 UI 类。 Swing 中有一个完整的方法链用于正确绘制/调整组件大小。
如果我们知道您想要做什么,我们或许可以帮助您。
【讨论】: