Ho una JApplet che contiene un JPanel, che a sua volta ospita diversi componenti e altri due JPanel, sui quali vorrei disegnare due immagini.
Il problema è che le immagini vengono disegnate ad ogni chiamata di repaint(), ma una frazione di secondo dopo vengono sostituite dal classico colore di sfondo grigio del JPanel.
Il programma è troppo lungo per effettuare un copia/incolla, ecco le parti principali.
Le classi coinvolte nella grafica sono tre
ClassePrincipale extends JApplet
ChartWindow extends JPanel
Grafico
La parte grafica è strutturata come segue
ClassePrincipale
Nell' init()
ChartWindowcodice:finestraGrafica=new ChartWindow(); add(finestraGrafica)
Naturalmente grafico è un oggetto della classe Grafico.codice:paintComponent(Graphics g) { super.paintComponent(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(); grafico.draw(imgGrafico,imgVolumi,mouseX,mouseY); ((Graphics2D)grafico.pannelloGrafico.getGraphics()).drawImage(immagineGrafico,0,0,this); ((Graphics2D)grafico.pannelloVolumi.getGraphics()).drawImage(immagineVolumi,0,0,this); }
grafico contiene due JPanel, che vengono aggiunti nel costruttore di ChartWindow assieme ad altri componenti
Penso ci sia tutto. Ci sono stato diverse ore dietro ma senza risultati. Se pensate che manchi qualche informazioni scrivetemi senza problemi.codice:grafico=new Grafico() ................ add(grafico.pannelloGrafico); add(grafico.pannelloVolumi);
Grazie per la lettura![]()

Rispondi quotando