2016-12-14 21 views
-1

這是我第一次在一個程序中這樣做,我想知道是否有辦法將限制設置爲零。最大值是100,當用戶全部使用它時,最小值應該是0並且不應該小於0.這是我想出的代碼。感謝您的任何意見,幫助和想法。如何將數值限制設置爲零?

private class SliderListener implements ChangeListener { 
     @Override 
     public void stateChanged(ChangeEvent sl) { 
      int iSlider, dSlider, sSlider, wSlider; 

      iSlider = intSlider.getValue(); 
      dSlider = dexSlider.getValue(); 
      sSlider = strSlider.getValue(); 
      wSlider = wisSlider.getValue(); 

      //Store the points in the display field 
      points.setText(Double.toString(100 - (iSlider + dSlider 
       + sSlider + wSlider))); 
     } 
    } 
+1

您是否指Double.toString(100 - (iSlider + dSlider + sSlider + wSlider))的最小值? – maheeka

+0

'Math.max(0,otherNum)' – 4castle

+0

是的。當我將前三個滑動到每個25時,第四個應該不會超過25. @maheeka – dullerthandull

回答

1

簡單地說:

int sliderSum = iSlider + dSlider + sSlider + wSlider; 
int master = Math.max (0, 100-sliderSum); 
points.setText (Double.toString (master)); 

端注:如果您的滑塊可以歸納到超過100,那麼你就需要考慮一下是應該在這種情況下發生的。滑塊是否應該分配100的一部分?他們是否應該被禁止設置得如此之高以至於超過100?或者,這可能不重要,在這種情況下,你很好?

+0

謝謝!這有很大幫助。 – dullerthandull

0

我會做的,基本上是創建一個if語句,以防止它被超過100個這樣的方式,

if(iSlider + dSlider + sSlider + wSlider > 100) { 
    //do something that changes it 
} 

或者更好的做出改變它們的值的方法,也將做檢查就像我給你看的那樣,防止他們過去。