【问题标题】:Set the size of a JSlider thumb设置 JSlider thumb 的大小
【发布时间】:2011-11-01 04:38:13
【问题描述】:

如何为JSlider 配置拇指大小?

使用默认值,JSlider 的范围为 256,拇指只有几个像素宽,这使得用鼠标很难控制。

我使用的是 Windows 7 的外观和感觉,滑块如下所示:

启用paintTicks 的主要和次要刻度间距为 0 可以提供更好的(虽然不是首选)显示:

所需的显示如下图所示 - 取自本机 Windows 7 应用程序:

【问题讨论】:

  • 你是怎么弄的那个这么瘦的?
  • @Andrew Cecil,如果您附上屏幕截图会很酷。 :D
  • @Andrew a few pixels 多少钱?您使用的是哪个用户界面?
  • 启用paintTicks 属性(但没有刻度)给出以下结果:link。可能会这样。
  • 另见answer

标签: java swing jslider


【解决方案1】:

您可以尝试自定义 JSlider 外观,如下所示:

UIDefaults defaults = UIManager.getDefaults();
defaults.put("Slider.thumbHeight", HEIGHT_AS_INTEGER); // change height
defaults.put("Slider.thumbWidth", WIDTH_AS_INTEGER); // change width

参考:

请务必注意,这些更改将适用于所有 JSlider 实例,这可能会使这种方法不受欢迎。

【讨论】:

  • 这需要在什么时候完成?在设置外观之前?在创建JSlider 组件之前?到目前为止,我一直无法让它产生任何效果。
  • @Andrew,好问题。我还不知道。
  • 看起来这些 UIDefaults 键仅由 Nimbus / Synth L&Fs 查询(至少在 Oracle Java 中)
【解决方案2】:

这取决于 SliderUI,它可能具有硬编码大小。如果没有,如果您希望所有滑块的拇指大小相同,则使用 mre 的建议是一种方法。

除了为使用它们的 UI 设置默认值之外,您还可以为特殊滑块定义不同的 UI(例如 myslider.setUI(new MyCustonSliderUI())),但请注意,这有其自身的缺点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多