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

    Caricare Pannellino

    Ho 1 JFrame che contiene 2 JPanel (Uno contiene bottoni l'altro una sola immagine di sfondo!!!!).
    Ho poi un altro pannello (della stessa grandezza di quello che contiene lo sfondo) con poche JLabel.
    Vorrei che al click su un qualsiasi bottone si aprisse quello della label...
    Ho scritto un paio di menate:
    codice:
    class PannelloCentrale extends JPanel { 
    	private Image img;
    	PannelloModifica modifica;
                 //costruttore della classe
    	public  PannelloCentrale() {
    	    this.setLayout(null);
    	    this.setBounds(230,94,770,680);
    	    
                       img = Toolkit.getDefaultToolkit().getImage("Immagini/image1.jpg");
                       MediaTracker tracker = new MediaTracker(this);
    	      tracker.addImage(img,0);
    	      try{tracker.waitForID(0);
    	      }catch (InterruptedException exception)
    		  {
    		   System.out.println("ERRORE: "+exception);
    		  }
    		
    	}
    	
    	public void modificadati() {
    	     System.out.println("mannaggione!!");
    	     modifica = new PannelloModifica(); //e' una altro pannello identico a questo
    	     modifica.setVisible(true);
    	     modifica.setBounds(0,0,770,680);
    	     this.add(modifica);
    	}
    	
    	
    	// Ridefinizione del metodo paintComponent 
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);
        	Graphics2D G = (Graphics2D)g;
        	G.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
    				   RenderingHints.VALUE_ANTIALIAS_ON);
        		G.drawImage(img,-200,-130,null);
        }
    }
    il metodo modificadati() viene correttamente chiamato dal bottone dell'altro pannello (la scritta mannaggione viene stampata ma il pannello non viene caricato..
    N.B. Se metto il contenuto del metodo nel costruttore funziona...
    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Il forum è dotato di un comodo tasto # all'interno della form dove comporre i messaggi.
    Quel pulsante permette di inserire i famosi tag [*CODE] e [*/CODE] (senza l'asterisco rosso).
    Il codice va postato all'interno di questi due tag, così da migliorarne la leggibilità sul forum.

    Modifico io il tuo post.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Scusa non lo sapevo...grazie per l'intervento ma avrei preferito mi aiutassi a risolvere il problema..ciao

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Devi rimuovere il pannello che desideri "nascondere", quindi richiamare un validate() sul contenitore che conteneva il pannello (immagino sia il JFrame, non ho guardato tutto il codice).
    Poi devi aggiungere il nuovo pannello e richiamare nuovamente un validate() sul contenitore.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    L'unica cosa che ho capito e' che devo premere il bottone asterisco quando posto il codice.....
    1) Il validate e' riferito al contenitore che e' il JFrame ok... ma dove lo metto?? Nel JFrame?? Nel pannello che che voglio far scomparire in cui e' chiamato il metodo modificadati()??
    Esempio:
    codice:
    class PannelloCentrale extends JPanel {
          ..............
         
    public void modificadati() {
    	     System.out.println("mannaggione!!");
    	     modifica = new PannelloModifica(); //e' una altro pannello identico a questo
    	     modifica.setVisible(true);
    	     modifica.setBounds(0,0,770,680);
    	     this.add(modifica);
                      FrameGenerale.validate(); //frame generale e' il contenitore
    Oppure questo stramaledetto metodo modificadati() devo per forza metterlo nel Frame che contiene i due pannelli??
    2) e' proprio necessario rimuovere il pannello che voglio nascondere??? se me lo schiaffa sopra non e' uguale??
    Ti ringrazio anticipatamente

  6. #6
    insomma c'e' qualcuno che lo sa?? dovrebbe essere una cosa piuttosto smeplice!! ma possibie che nessuno abbia voglia di scrivere 4 righe di codice per fare un favore ad un povero cristo??

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.