Java Swing Range Slider U.I

时间:2009-07-16 21:05:05

标签: java swing user-interface look-and-feel jslider

我需要一个带有两个旋钮的滑块(代表一个范围),我发现这个漂亮的here。然而,他们创造了自己的U.I.它扩展了Java的BasicSliderUI。它们覆盖了绘制方法以绘制自己的旋钮。我想根据当前的外观使用默认旋钮。我尝试调用 BasicSliderUI paintThumb方法,但这给了我一个通用的旋钮,它似乎与当前的外观和感觉无关。据我所知,JSlider得到它的U.I.来自MultiSliderUI。如何创建一个更改为JSlider的U.I,但是绘制两个旋钮而不是一个?

提前致谢!

3 个答案:

答案 0 :(得分:4)

SwingX提供JXMultiThumbSlider,这可能就是您要找的内容。

答案 1 :(得分:2)

尝试从javax.swing.UIManager获取当前外观并在其上调用getUI(new JSlider())。这应该返回用于JSlider的当前用户界面,该用户界面应该可投放到JSliderUI

不幸的是JSliderUI没有paintThumb(Graphics g)方法,但是BasicSliderUI方法,至少在Windows XP和Windows Vista上,系统的外观是BasicSliderUI的子类。 1}},金属外观也是如此。

所以,一旦你JSliderUI看到它是BasicSliderUI的实例,如果是,你可以将它投射到BasicSliderUI并在其上使用paintThumb(Graphics g),否则默认为你已经这样做的方式。我不知道这是否真的有效,但如果我需要的话,这将是我的第一次尝试。

如果他们的JSliderUI也来自BasicSliderUI,我没有Linux或Mac检查来源,但如果你这样做,那么请查看java源代码。

答案 2 :(得分:1)

您可以使用RangeSlider类     Jide Commons Layer

这是开源。