Originariamente inviato da mkd_
come vedi (se non sto sbagliando) ho già tentato con queste soluzioni
Non sono iscritto su StackOverflow... ma da quel che vedo non mi pare che tu abbia corretto quanto riportato nel mio punto 3.
Quello è il nocciolo della questione: se definisci un componente A, che al suo interno ha un componente B, non è sufficiente ridefinire il metodo paintComponent() di A e da esso modificare il Graphics di B... non funziona così. Anzi, è proprio sbagliato.
Ciascun componente ha il proprio paintComponent(). Se vuoi modificare il comportamento di un componente, devi ridefinire il suo paintComponent(), non uno qualunque.
Questo è completamente sbagliato:
codice:
paintComponent(Graphics g)
{
super.paintComponent(g);
// Queste righe andrebbero spostate nel costruttore
Image immagineGrafico=createImage(grafico.pannelloGrafico.getWidth()
,grafico.pannelloGrafico.getHeight());
Image immagineVolumi=createImage(grafico.pannelloVolumi.getWidth()
,grafico.pannelloVolumi.getHeight());
// Tutte queste righe non hanno proprio senso:
// stai cercando di modificare il Graphics di componenti che non sono quello
// che stai ridefinendo.
Graphics2D imgGrafico=(Graphics2D)immagineGrafico.getGraphics();
Graphics2D imgVolumi=(Graphics2D)immagineVolumi.getGraphics();
grafico.draw(imgGrafico,imgVolumi,mouseX,mouseY);
((Graphics2D)grafico.pannelloGrafico.getGraphics()).drawImage(immagineGrafico,0,0,this);
((Graphics2D)grafico.pannelloVolumi.getGraphics()).drawImage(immagineVolumi,0,0,this);
}
Ciao.