code: public Location next( int windowSize, int increment )
  	{
  		if( windowSize <= 0 )
  		{
  			throw new IllegalArgumentException( "Window size must be positive." );
  		}
  
  		if( increment == 0 )
  		{
  			throw new IllegalArgumentException( "Increment must be non-zero." );
  		}
  
  		Location r;
  
  		try
  		{
  			if( increment > 0 )
  			{
  				r= mBounds.suffix( mPosition ).prefix( windowSize );
  			}
  			else
  			{
  				if( mPosition == 0 )
  				{
  					r= mBounds.suffix( - windowSize );
  				}
  				else
  				{
  					r= mBounds.prefix( mPosition ).suffix( - windowSize );
  				}
  			}
  
  			mPosition+= increment;
  
  		}
  		catch( Exception e )
  		{
  			throw new IndexOutOfBoundsException( e.toString() );
  		}
  
  		return r;
  	}
docs: Get next window of specified size, then increment position by specified amount.
  
  @return Location of next window.
  @param windowSize Size of window to get.
  @param increment Amount by which to shift position. If increment is positive, the position is shifted
  toward the end of the bounding location; if increment is negative, the position is shifted toward
  the beginning of the bounding location.
  @throws IndexOutOfBoundsException The next window was not within the bounding location.
  @throws IllegalArgumentException The increment was zero, or windowSize was not positive.