0

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

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

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

反正有没有得到每个标记的坐标?或者也许是执行此任务的更好方法?

非常感谢!

4

1 回答 1

2

这取决于外观和感觉,当用户使用一些非标准的 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)
于 2010-03-12T12:44:33.777 回答