Java Swing - JSlider上的绘图标记

时间:2010-03-12 11:02:08

标签: java swing drawing jslider

我有一个继承自JSlider的进度条以提供突出显示功能。 精彩部分可以添加到滑块上的一个点(和一个颜色),然后将它们绘制到控件上。如下:

http://img101.imageshack.us/img101/7608/sliderexample.png

问题在于我无法在正确的位置获得精彩,它们需要与标记位于同一位置。我也不知道如何检索标记开始和结束位置的左右边距。

无论如何都要获得每个标记的坐标?或者也许是执行此任务的更好方法?

非常感谢!

1 个答案:

答案 0 :(得分:2)

这取决于Look&当用户使用某些非标准L& F时,感觉并且很可能根本没有任何标记。事实上,你的问题既是功能和图形实现的扩展,所以你可能不得不触摸JSlider和SliderUI。

请注意以下方法:

javax.swing.JSlider.getMajorTickSpacing() 
javax.swing.JSlider.getMinorTickSpacing() 

此外,查看javax.swing.plaf.SliderUI和扩展它的类可能会有所帮助,尤其是

javax.swing.plaf.basic.BasicSliderUI.paintTicks(java.awt.Graphics)
javax.swing.plaf.basic.BasicSliderUI.xPositionForValue(int)