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