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);  
}