gpt4 book ai didi

java - 如何让 JScrollBar 在构造函数中采用长值?

转载 作者:行者123 更新时间:2023-11-30 07:30:21 25 4
gpt4 key购买 nike

因此有一个 JScrollBar 的构造函数,如下所示:

public JScrollBar(int orientation, int value, int extent, int min, int max) 

对于我的 JScrollBar 实现,我需要让 int 值很长,因为我的数据大小可能超过 int 的限制,所以像这样:

public JScrollBar(int orientation, long value, long extent, long min, long max) 

对我来说,为 JScrollBar 实现此构造函数的最佳方法是什么,是完全重新制作 JScrollBar,因为这些值无处不在?或者还有其他更好的方法来做到这一点。

注意:如果我完全重写 JscrollBar,我也必须重写 swing.DefaultBoundedRangeModel,因为它也需要一个 int。这似乎不是最好的方法,所以有人有更好的想法吗?

最佳答案

在某种程度上,您将用尽屏幕分辨率以正确检测实际变化。要么滚动内容,滚动条就不会移动。或者,用户会将滚动条移动到一个新区域,从而造成迷失方向。

一个 32 位整数向上运行是 20 亿个正数。如果您的屏幕分辨率甚至是 1,000 像素,用户将无法控制滚动条,因为滚动条上的任何像素移动都代表您正在滚动的目标中的 2,147,483 像素(如果您的缩放比例为 1:1)。所以我可能会想到一种方法,将缩放级别映射到滚动条上,这样您就可以在任何级别滚动,而且滚动起来会很流畅。

其他选项可能是使用概览/细节控件,该控件显示一张小图片,其中一个正方形显示您在大图片中的位置,然后是放大显示。您可以拖动上图中的图片,并在详细图像中查看它的结果。问题是,如果你只移动一个像素,你仍然有这 200 万像素的移动,所以在小缩放比例下移动这么大的图像会让人迷失方向。但是,在细节 View 中使用手拖动进行较小的移动,不会让人迷失方向。这方面解决了重新实现 JScrollBar 的问题,可能是更好的选择。

关于java - 如何让 JScrollBar 在构造函数中采用长值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7920454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com