我的应用程序的一部分有一个媒体组件,我正在寻找一个可以使用的不错的音量滑块,而不是为此目的看起来有点难看的 JSlider(或者具体来说,具有自定义视觉效果的扩展 JSlider 会很好)。我可以写一个,但我真的不想重新发明轮子。
就“不错”的音量滑块而言 - 我正在寻找 VLC 之类的东西:
有没有像这样的(免费)组件我已经错过了?
我的应用程序的一部分有一个媒体组件,我正在寻找一个可以使用的不错的音量滑块,而不是为此目的看起来有点难看的 JSlider(或者具体来说,具有自定义视觉效果的扩展 JSlider 会很好)。我可以写一个,但我真的不想重新发明轮子。
就“不错”的音量滑块而言 - 我正在寻找 VLC 之类的东西:
有没有像这样的(免费)组件我已经错过了?
Jasper Potts 有一篇不错的博客文章,介绍了如何使用 Nimbus 外观和感觉对滑块进行蒙皮:使用 Nimbus 对滑块进行蒙皮。
这是它的样子:
通过关注博客文章,在滑块上制作自己的自定义外观并不难。您可能还对我关于使用 Nimbus 外观和完整代码示例自定义 JScrollPane的回答感兴趣。
由于单击扬声器会需要静音操作,因此我建议您实现自己的 JSlider 并将其插入外观;但是,我也强烈建议您重用 JSlider 实现的 BoundedRangeModel。
或者,您可以将 JPanel 子类化并在内部封装两个小部件;然而,这种技术需要一个中介模式来保持两个小部件的显示与一个共享的 BoundedRangeModel 同步。
查看关于制作自定义小部件的旧 Sun 文档,并使用 JSlider 的源代码作为起点。这并不像看起来那么难;但是,要让它“恰到好处”确实需要一些时间。