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