我有一个继承自JSlider的进度条以提供突出显示功能。 精彩部分可以添加到滑块上的一个点(和一个颜色),然后将它们绘制到控件上。如下:
http://img101.imageshack.us/img101/7608/sliderexample.png
问题在于我无法在正确的位置获得精彩,它们需要与标记位于同一位置。我也不知道如何检索标记开始和结束位置的左右边距。
无论如何都要获得每个标记的坐标?或者也许是执行此任务的更好方法?
非常感谢!
答案 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)