【发布时间】:2011-11-01 04:38:13
【问题描述】:
如何为JSlider 配置拇指大小?
使用默认值,JSlider 的范围为 256,拇指只有几个像素宽,这使得用鼠标很难控制。
我使用的是 Windows 7 的外观和感觉,滑块如下所示:
启用paintTicks 的主要和次要刻度间距为 0 可以提供更好的(虽然不是首选)显示:
所需的显示如下图所示 - 取自本机 Windows 7 应用程序:
【问题讨论】:
如何为JSlider 配置拇指大小?
使用默认值,JSlider 的范围为 256,拇指只有几个像素宽,这使得用鼠标很难控制。
我使用的是 Windows 7 的外观和感觉,滑块如下所示:
启用paintTicks 的主要和次要刻度间距为 0 可以提供更好的(虽然不是首选)显示:
所需的显示如下图所示 - 取自本机 Windows 7 应用程序:
【问题讨论】:
您可以尝试自定义 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 组件之前?到目前为止,我一直无法让它产生任何效果。
这取决于 SliderUI,它可能具有硬编码大小。如果没有,如果您希望所有滑块的拇指大小相同,则使用 mre 的建议是一种方法。
除了为使用它们的 UI 设置默认值之外,您还可以为特殊滑块定义不同的 UI(例如 myslider.setUI(new MyCustonSliderUI())),但请注意,这有其自身的缺点。
【讨论】: