我需要一个滑块上有两个旋钮(代表一个范围),我发现这个漂亮的一个这里。然而,他们创建了自己的U.I.,它扩展了Java的BasicSliderUI。他们推翻了油漆的方法来画他们自己的旋钮。我想使用默认的旋钮基于当前的外观和感觉。我试着调用BasicSliderUI的paintThumb方法,但这给了我一个通用的外观旋钮,它似乎与当前的外观和感觉无关。据我所知,JSlider是从MultiSliderUI获得As的。我怎样才能创造出一个U.I,它可以像JSlider那样变化,但只画两个旋钮而不是一个?
提前感谢!
发布于 2009-07-16 22:32:57
SwingX提供了JXMultiThumbSlider,这可能是您想要的。
发布于 2009-07-22 10:33:21
尝试从javax.swing.UIManager中获取当前的外观和感觉,并在上面调用getUI(new JSlider())。这将返回用于JSlider的当前UI,该UI应该可以转换为JSliderUI。
不幸的是,JSliderUI没有paintThumb(Graphics g)方法,但是BasicSliderUI有,至少在Windows和Windows上,系统外观和感觉是BasicSliderUI的子类,金属外观也是如此。
因此,一旦您拥有了JSliderUI,看看它是否是BasicSliderUI的一个实例,如果是的话,您可以将它转换为BasicSliderUI并在其上使用paintThumb(Graphics g),否则默认为您已经使用的方式。我不知道这是否有效,但如果我需要的话,这将是我的第一次尝试。
我没有Linux或Mac来检查它们的JSliderUI是否也来自于BasicSliderUI,但是如果您这样做了,请查看java源代码。
发布于 2009-07-19 14:30:46
您可以从RangeSlider中使用Jide共用层类
这是露天矿。
https://stackoverflow.com/questions/1140303
复制相似问题