Purtroppo mi viene da pensare che hai (ancora) le idee un po' confuse su come gestire il painting nei componenti. E non hai postato alcun codice, per cui non saprei nemmeno dire se quanto hai fatto è corretto/appropriato oppure no.
Il minimo che puoi e dovresti fare è creare una classe che estende (tipico) JPanel e in cui fai l'override di paintComponent in cui disegni tutto il grafico. Poi questa tua classe può offrire metodi extra, tipo setValoriGrafico, resetGrafico, ecc.... che ovviamente servono a impostare e gestire il grafico. Un setValoriGrafico potrebbe ricevere un array di double o un array di oggetti Punto o altro, dipende dal concetto del grafico da rappresentare (nel tuo caso non ho ancora capito bene...). All'interno del metodo imposti la struttura dati interna alla classe e poi chiedi un repaint() affinché il paintComponent venga invocato successivamente per ridisegnare tutto il grafico.
Questo, come si dice, è il "minimo sindacale" che si può fare. Poi si possono applicare tutta una serie di ottimizzazioni: una immagine off-screen di buffer, la possibilità di fare aggiunte "incrementali" al grafico, ecc... E si può realizzare il tutto nell'ottica MVC (Model-View-Controller) facendo una classe di "model" che contiene solo i dati e separatamente la classe che estende JPanel che si occupa solo della visualizzazione. Tutto questo comunque è di più, oltre al minimo che puoi fare.
Comunque, cercherò sicuramente appena posso di creare un esempio di grafico, perché credo possa essere utile.![]()