2011-06-08 63 views
-1

我想知道是否有可能知道滑块的哪一侧拇指正在移动。我必须实现一个基于滑块的缩放功能,我可以放大,但不能缩小。JSlider滑动方向

if (!zoomSlider.getValueIsAdjusting()) { 
      double minY = model.getMinY(); 
      double maxY = model.getMaxY(); 

      double distanceY = maxY - minY; 

      double posY = minY + distanceY/2.0; 

    if(?) { 
      distanceY /= zoomSlider.getValue(); 
    } else { 
    distanceY *= zoomSlider.getValue(); 
    } 

      minY = posY - distanceY/2.0; 
      maxY = posY + distanceY/2.0; 

      changeMaxY(maxY); 
    changeMinY(minY); 
     } 

谢谢。

+2

你是指哪一方?为什么你不能缩小,这似乎没有关系? – jzd 2011-06-08 11:50:03

+0

你能发表一些代码吗? – 2011-06-08 11:52:01

+0

在我的计算中,我需要用滑块值分开一段距离,然后当我将滑块移动到之前的值时,我需要将其相乘。目前我无法知道何时分裂或繁殖。 – wotan2009 2011-06-08 11:58:55

回答

0

当我向右移动时,我想乘以1,2,3或4,当我向左移动时除以1,2,3或4。

跟踪“上一个”滑块值,以便您可以将其与“当前”滑块值进行比较。当这个值增加你的乘数,当它减少时,你除。

0

我想我知道你想要什么。中间有拇指的滑块,当向左或向右滑动时,它会放大,直到松开鼠标。如果是这样,你应该为你的滑块设置一个最大值,比如9。然后,在你的循环中(我猜你在循环中,否则你创建一个mouserelease事件处理程序),你总是将该值设置为5。滑动时,取当前值并从中减去5。现在该减法的结果应该代表缩放的速度。 0表示没有缩放。一切正面意味着放大,一切负面意味着缩小。

+0

其实我想要的是,当我走向正确的时候,我会繁衍,当我离开时,我会分裂。假设我的滑块上有一个因子1,2,3,4。当我向右移动时,我想乘以1,2,3或4,当我向左移动时,除以1,2,3或4。 – wotan2009 2011-06-08 12:55:22