Set the size of a JSlider thumb

倖福魔咒の 提交于 2019-12-29 06:50:06

问题


How can the size of the thumb be configured for a JSlider?

With the defaults, and a range for the JSlider of 256, the thumb is only a few pixels wide, which makes it quite difficult to control with a mouse.

I am using the Windows 7 look and feel and the slider looks like this:

Enabling paintTicks with a major and minor tick spacing of 0 gives a better (although not preferred) display:

The desired display is shown in the following image - taken from a native Windows 7 application:


回答1:


You could try customizing the JSlider Look and Feel as follows:

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

Reference:

  • Customizing a JSlider Look and Feel

It's important to note that these changes will apply to all JSlider instances, which may make this approach undesirable.




回答2:


This depends on the SliderUI, which might have hard coded sizes. If not, using mre`s suggestion would be a way to go, if you want the same thumb size for all sliders.

Alternatively to setting the defaults for a UI that uses them, you could define a different UI for a special slider (e.g. myslider.setUI(new MyCustonSliderUI())), but be aware that that has its own drawbacks.



来源:https://stackoverflow.com/questions/7148605/set-the-size-of-a-jslider-thumb

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!