JSlider实际在哪里绘制?

问题描述

| 我只是从JSlider SourceCode看了源代码 以及是否由于模板模式而发现了很多repaint()\。 但是我的问题是我找不到绘画方法,实际上是绘画JSlider。 有人可以向我解释如何绘制此组件吗?     

解决方法

Swing组件通常由其关联的UI类绘制。 UI类特定于每个外观。这是使JSlider在不同平台上具有“自然”感觉甚至自定义感觉的方式。每个Swing组件都有一个UI类,JSlider具有SliderUI,它具有多种风格,例如:MetalSliderUI,WindowsSliderUI和SynthSliderUI。 您没有在JSlider中找到绘画方法,因为绘画方法位于父类JComponent中。 JComponent的绘制方法(paint,paintComponent,repaint等)进行了一些设置,但随后将工作委托给JSlider提供的UI类。在Swing中有一个完整的方法链,用于正确绘制/调整组件的大小。 如果我们知道您要做什么,我们也许可以为您提供帮助。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...