ciao a tutti,
volevo sapere come faccio a creare 4 jpanel differenti posti in un unico jframe e poi caricare immagini differenti per ogni jpanel...
praticamente a ogni messaggio che mi arriva, leggo l'id del messaggio e in base a questo id cambio l'immagine del jpanel corrispondente... ora ho un unico jpanel e ogni vvolta che mi arriva un messaggio mi si cancella l'iimagine precedente e viene ricreata quella nuova (penso che venga creto un nuovo jpanel tutte le volte, non va bene!!!)...
scusate ma non ne capisco molto di java...

codice:
import java.awt.*;
import javax.swing.*; 
import java.awt.event.*;
import java.awt.color.*;


public class DemoImage extends JFrame {

public static JFrame frame = new JFrame("My JFrame");
public static int WIDTH=300;
public static int HEIGHT=300;
//public static ImagePanel panel;
//public JPanel panel = new JPanel();
public ImagePanel panel;


public void setJFrame() {


frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(WIDTH, HEIGHT);
frame.setResizable(true);
frame.setLocationRelativeTo(null);
frame.validate();
frame.setVisible(true);
}

public void showImage() {

panel= new ImagePanel(BIGMSG.image);  //corretta!!! legge l'immagine dai byte
//JPanel panel = new JPanel();

frame.getContentPane().add(panel, BorderLayout.CENTER);  
panel.setVisible(true); //se false,no si vede niente

panel.setDoubleBuffered(true);// ??? forse serve per una specie di buffer, mi fa vedere tutte le immagini e non solo la fragola
panel.setBackground(Color.white);
panel.setBorder(BorderFactory.createLineBorder(Color.black));
panel.setOpaque(true);
  
}

}

class ImagePanel extends JPanel{
	
	private Image image;
	private Dimension dim=null;
	
	public ImagePanel(String image) {
    	  this(new ImageIcon(image).getImage());
 	 }

	public ImagePanel(Image image){
		this.image=image;
		dim=new Dimension();
		dim.width=WIDTH;
		dim.height=HEIGHT;
		setPreferredSize(dim);  	
	}
	
	public void resetImage(Image image){
		
		this.image=image;
		repaint();
	}

    
    public void paintComponent(Graphics g)
    {
    	if(image!=null){
    		  	super.paintComponent(g);
    		  	g.drawImage(image,BIGMSG.numero_nodo*30,BIGMSG.numero_nodo*30,null);
    	
    	}
        
    }

}