Java滑块,带刻度盘外观

Java滑块,带刻度盘外观,java,swing,jslider,Java,Swing,Jslider,我试图创建一个JSlider对象,它的线看起来像一个圆弧,有最小数量的记号(尽管有些可能没有值),滑块指示器是一条从圆弧中心到当前选定记号的简单线。看起来我可能需要扩展BasicSliderUI并覆盖各种绘制方法。是否已经有类似的示例,或者我是否从头创建了此对象?这说明了如何覆盖BasicSliderUI的paintTrack()方法。看起来你可以画一条线来获得你想要的效果。用鼠标在GUI上画一条直线或上下拖动是一种自然的运动。但“径向运动”要自然得多,也更难做到。为了您的用户着想,请放弃这个想

我试图创建一个JSlider对象,它的线看起来像一个圆弧,有最小数量的记号(尽管有些可能没有值),滑块指示器是一条从圆弧中心到当前选定记号的简单线。看起来我可能需要扩展BasicSliderUI并覆盖各种绘制方法。是否已经有类似的示例,或者我是否从头创建了此对象?

这说明了如何覆盖
BasicSliderUI
paintTrack()
方法。看起来你可以画一条线来获得你想要的效果。

用鼠标在GUI上画一条直线或上下拖动是一种自然的运动。但“径向运动”要自然得多,也更难做到。为了您的用户着想,请放弃这个想法。您也可以看看上面提到的拨号图。不幸的是,我不得不模仿现有的用户界面,出于某种原因,最初的设计师选择了这些拨号盘。我同意这是一个糟糕的用户界面,但这就是我所坚持的。虽然这是一个触摸屏界面,但线条可能没有您想象的那么大。可以找到有关渲染
Arc2D
的更多信息。使用滑块的唯一问题是,标签似乎总是绘制在轨迹下方。我实际上需要把它们画在线以上。对于覆盖量来说,拥有自己的组件可能更容易。只是我需要setSnapToTicks的行为(真的)。这就是为什么我想从滑块开始。我已经找到了渐变绘制示例,这就是我在原型中使用的。