code: public void setFilters(BufferedImageOp ... effects) {
          if (effects == null) effects = new BufferedImageOp[0];
          BufferedImageOp[] old = getFilters();
          this.filters = new BufferedImageOp[effects.length];
          System.arraycopy(effects, 0, this.filters, 0, this.filters.length);
          setDirty(true);
          firePropertyChange("filters", old, getFilters());
      }
docs: <p>A convenience method for specifying the filters to use based on
  BufferedImageOps. These will each be individually wrapped by an ImageFilter
  and then setFilters(Effect... filters) will be called with the resulting
  array</p>
  
  
  @param effects the BufferedImageOps to wrap as filters