Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    creare 4 jpanel con immagini diverse

    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);
        	
        	}
            
        }
    
    }

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.