【问题标题】:Java Swing Range Slider U.IJava Swing Range Slider U.I
【发布时间】:2010-11-11 12:52:33
【问题描述】:

我需要一个带有两个旋钮的滑块(代表一个范围),我发现了这个漂亮的 here。但是,他们创建了自己的 UI。它扩展了 Java 的 BasicSliderUI。他们覆盖了paint方法来绘制自己的旋钮。我想使用基于当前外观和感觉的默认旋钮。我尝试调用BasicSliderUIpaintThumb 方法,但这给了我一个看起来与当前外观无关的通用旋钮。据我所知,JSlider 得到了它的 U.I.来自MultiSliderUI。如何创建一个像 JSlider 一样变化但绘制两个旋钮而不是一个旋钮的 UI?

提前致谢!

【问题讨论】:

  • 嘿,现在可以随意发布链接了。我懒得自己做。
  • P.S.对这个限制感到抱歉。它可以防止链接垃圾邮件发送者。

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


【解决方案1】:

SwingX 提供JXMultiThumbSlider,这可能是您正在寻找的。​​p>

【讨论】:

    【解决方案2】:

    尝试从javax.swing.UIManager 获取当前的外观和感觉并在其上调用getUI(new JSlider())。这应该返回用于 JSlider 的当前 UI,它应该可以转换为 JSliderUI

    不幸的是JSliderUI 没有paintThumb(Graphics g) 方法,但BasicSliderUI 有,至少在Windows XP 和Windows Vista 上,系统外观是BasicSliderUI 的子类,Metal 也是外观和感觉。

    所以一旦你有了JSliderUI,看看它是否是BasicSliderUI的一个实例,如果是,你可以将它转换为BasicSliderUI并在上面使用paintThumb(Graphics g),否则默认你正在做的事情已经。我不知道这是否真的有效,但如果我需要,这将是我的第一次尝试。

    如果他们的JSliderUIs 也是从BasicSliderUI 派生的,我没有 Linux 或 Mac 来检查源代码,但如果你这样做了,请查看 java 源代码。

    【讨论】:

      【解决方案3】:

      您可以使用 RangeSlider 类 Jide Commons Layer

      这是开源的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-11
        相关资源
        最近更新 更多