设置 JSlider 拇指的大小

发布于 2024-11-30 16:36:31 字数 527 浏览 0 评论 0原文

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

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

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

Screenshot of slider

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

Screenshot of slider with PaintTicksenabled

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

Screenshot of native slider

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:

Screenshot of slider

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

Screenshot of slider with paintTicks enabled

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

Screenshot of native slider

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏至、离别 2024-12-07 16:36:31

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

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

参考:

需要注意的是,这些更改将应用​​于所有 JSlider 实例,这可能会使这种方法不受欢迎的。

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:

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

单身情人 2024-12-07 16:36:31

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文