Ti ringrazio per la pazienza
il codice attuale è il seguente

paintComponent() del pannello addato alla JApplet

codice:
  super.paintComponent(g); 
  //Graphics2D schermo=(Graphics2D) g; 
  Image immagineGrafico=createImage(grafico.pannelloGrafico.getWidth()      
                      ,grafico.pannelloGrafico.getHeight()); 
  Image immagineVolumi=createImage(grafico.pannelloVolumi.getWidth() 
                      ,grafico.pannelloVolumi.getHeight()); 
  Graphics2D imgGrafico=(Graphics2D)immagineGrafico.getGraphics(); 
  Graphics2D imgVolumi=(Graphics2D)immagineVolumi.getGraphics(); 
  long start=System.nanoTime(); 
  grafico.draw(imgGrafico,imgVolumi,mouseX,mouseY); 
  long end=System.nanoTime(); 
  grafico.pannelloGrafico.setImg(immagineGrafico);
e questo il paintComponent() del JPanel addato al JPanel precedente

codice:
  long start=System.nanoTime(); 
  super.paintComponent(g); 
  Graphics2D schermo=(Graphics2D) g; schermo.drawImage(img,0,0,this); 
  //schermo.drawLine(ChartWindow.mouseX,0,ChartWindow.mouseX,300); 
  long end=System.nanoTime(); 
  //System.out.println("tempo repaintcompChartPanel="+((end-start)/1000000));
notare che se tolgo tutti i calcoli da grafico.draw il tempo di elaborazione diventa inferiore ai 3 millisecondi. Lasciando attivo solo il disegno di una linea verticale (schermo.drawLine()) che rappresenta il mouse la grafica va sempre a scatti.

Se non sbaglio dovrebbe essere corretto: il secondo JPanel disegna su se stesso, e il primo JPanel si limita a passare a grafico.draw il graphics di una immagine che verrà poi assegnata al secondo JPanel, che la disegnerà su se stessa