2011-06-08 65 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