问题描述
|
我只是从JSlider SourceCode看了源代码
以及是否由于模板模式而发现了很多repaint()\。
但是我的问题是我找不到绘画方法,实际上是绘画JSlider。
有人可以向我解释如何绘制此组件吗?
解决方法
Swing组件通常由其关联的UI类绘制。 UI类特定于每个外观。这是使JSlider在不同平台上具有“自然”感觉甚至自定义感觉的方式。每个Swing组件都有一个UI类,JSlider具有SliderUI,它具有多种风格,例如:MetalSliderUI,WindowsSliderUI和SynthSliderUI。
您没有在JSlider中找到绘画方法,因为绘画方法位于父类JComponent中。 JComponent的绘制方法(paint,paintComponent,repaint等)进行了一些设置,但随后将工作委托给JSlider提供的UI类。在Swing中有一个完整的方法链,用于正确绘制/调整组件的大小。
如果我们知道您要做什么,我们也许可以为您提供帮助。