设置JSlider拇指的大小

如何为JSlider配置拇指的大小?

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

我正在使用Windows 7的外观和感觉,滑块看起来像这样:

滑块截图

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

启用了paintTicks的滑块的屏幕截图

所需的显示如下图所示 – 取自本机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()) ),但要注意这有其自身的缺点。