private synchronized void toBuffer(int s,Object a){
     a1.add(s);a2.add(a);
     if(s==clear){clearBuffer();}
     if(s==opaque) theOpaque=(Boolean) a;
     if(s==setBackground)theBackground=(Color) a;
     if(inBuffer)return;
     if(isSetter(s))return;
     Graphics g=getGraphics();
     if(g==null)return;
     Graphics2D g2= (Graphics2D) g;
     g2.setPaint(origPaint);
     g2.setFont(origFont);
     g2.setStroke(origStroke);
     for(int i=0;i<a1.size()-1;i++){
        int s1=a1.get(i);Object s2=a2.get(i);
        if(isSetter(s1))doPaint(g2,s1,s2);
     }
     doPaint((Graphics2D)g,s,a);  
  }