code: public void setValue(int value) { 
  		if(value < min  || value > max) {
  			throw new IllegalArgumentException("The value " + value + " is out of the admitted range [" + min + ", " + max + "].");
  		}
  		if(value != min && value != max) {
  			if(timer == null) {
  				logger.trace("creating timer");
  				timer = new Timer(50, this);
  			}
  			if(!timer.isRunning()) {
  				logger.trace("starting timer");
  				timer.start();
  			}
  		} else {
  			logger.trace("value is '{}' (in range [{}, {}]", value, min, max);
  			if(timer != null && timer.isRunning()) {
  				logger.trace("stopping timer");
  				timer.stop();
  				// unless we force a repaint, the component may stop at 99%
  				repaint();
  			}
  		}
  		this.value = value;
  	}
docs: Sets the current progress arc value.
  
  @param value
  the current value of the progress arc.