private void updateBounds(){
  this.minimumRangeValue=Double.NaN;
  this.minimumRangeValueRow=-1;
  this.minimumRangeValueColumn=-1;
  this.maximumRangeValue=Double.NaN;
  this.maximumRangeValueRow=-1;
  this.maximumRangeValueColumn=-1;
  int rowCount=getRowCount();
  int columnCount=getColumnCount();
  for (int r=0; r < rowCount; r++) {
    for (int c=0; c < columnCount; c++) {
      BoxAndWhiskerItem item=getItem(r,c);
      if (item != null) {
        Number min=item.getMinOutlier();
        if (min != null) {
          double minv=min.doubleValue();
          if (!Double.isNaN(minv)) {
            if (minv < this.minimumRangeValue || Double.isNaN(this.minimumRangeValue)) {
              this.minimumRangeValue=minv;
              this.minimumRangeValueRow=r;
              this.minimumRangeValueColumn=c;
            }
          }
        }
        Number max=item.getMaxOutlier();
        if (max != null) {
          double maxv=max.doubleValue();
          if (!Double.isNaN(maxv)) {
            if (maxv > this.maximumRangeValue || Double.isNaN(this.maximumRangeValue)) {
              this.maximumRangeValue=maxv;
              this.maximumRangeValueRow=r;
              this.maximumRangeValueColumn=c;
            }
          }
        }
      }
    }
  }
}

private void updateBounds ( ) { this . minimumRangeValue = Double . NaN ; this . minimumRangeValueRow = - 1 ; this . minimumRangeValueColumn = - 1 ; this . maximumRangeValue = Double . NaN ; this . maximumRangeValueRow = - 1 ; this . maximumRangeValueColumn = - 1 ; int rowCount = getRowCount ( ) ; int columnCount = getColumnCount ( ) ; for ( int r = 0 ; r < rowCount ; r ++ ) { for ( int c = 0 ; c < columnCount ; c ++ ) { BoxAndWhiskerItem item = getItem ( r , c ) ; if ( item != null ) { Number min = item . getMinOutlier ( ) ; if ( min != null ) { double minv = min . doubleValue ( ) ; if ( ! Double . isNaN ( minv ) ) { if ( minv < this . minimumRangeValue || Double . isNaN ( this . minimumRangeValue ) ) { this . minimumRangeValue = minv ; this . minimumRangeValueRow = r ; this . minimumRangeValueColumn = c ; } } } Number max = item . getMaxOutlier ( ) ; if ( max != null ) { double maxv = max . doubleValue ( ) ; if ( ! Double . isNaN ( maxv ) ) { if ( maxv > this . maximumRangeValue || Double . isNaN ( this . maximumRangeValue ) ) { this . maximumRangeValue = maxv ; this . maximumRangeValueRow = r ; this . maximumRangeValueColumn = c ; } } } } } } }
resets the cached bounds , by iterating over the entire dataset to find the current bounds .
