如何在修改范围滑块上移动第二个滑块

时间:2015-07-30 22:13:48

标签: java swing jslider

我正在使用来自here的范围滑块的修改代码。它主要使用标准的Java滑块代码。

在页面下方的评论中,here,B.Oytun Peksal为一个拇指提供了推送另一个拇指的代码,但他只为UpperThumb提供了代码。

尽管进行了多次尝试,但我无法找出拇指较低的代码并且他没有回复我的请求。任何人都可以弄清楚其他拇指的代码应该是什么?我的Java还可以,但显然不是这个。提前谢谢。

这是他提供的代码的副本:

            case JSlider.HORIZONTAL:

                int halfThumbWidth = thumbRect.width / 2;
                int thumbRight = currentMouseX - offset;
                int trackLeft = trackRect.x - halfThumbWidth;
                int trackRight = trackRect.x + (trackRect.width - 1);
                int hMin = (int) thumbRect.getCenterX();
                // Apply bounds to thumb position.
                thumbRight = Math.max(thumbRight, trackLeft);
                thumbRight = Math.min(thumbRight, trackRight);
                hMin = hMin - halfThumbWidth;
                if (thumbRight >= hMin)
                {
                    setUpperThumbLocation(thumbRight, upperThumbRect.y);
                    // Update slider extent.
                    thumbMiddle = thumbRight + halfThumbWidth;
                    slider.setExtent(valueForXPosition(thumbMiddle) - slider.getValue());
                }
                else
                {
                    thumbMiddle = thumbRight + halfThumbWidth;
                    setThumbLocation(thumbRight, thumbRect.y);
                    slider.setValue(valueForXPosition(thumbMiddle));
                    setUpperThumbLocation(thumbRight, upperThumbRect.y);
                    slider.setExtent(valueForXPosition(thumbMiddle) - slider.getValue());
                }
                break;

    default:
        return;
}

0 个答案:

没有答案