Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Pierock
    Registrato dal
    Dec 2008
    Messaggi
    102

    [java] ..anomalie JPanel e CardLayout...

    ragazzi ho un piccolo problema che mi turba...
    vi spiego;
    ho creato un pannello con CardLayout ... su di esso ne ho dunque inseriti un altro paio, di modo da poter cambiare l'uno o l'altro a mio piacimento...
    il problema nasce dal fatto che 2 di questi pannelli hanno in comune un altro JPanel creato da una classe apposita...
    beh... ho notato che il pannello in comune non funziona assolutamente su entrambe... ma bensì solo su l'ultima!!!...
    ripetendo questa manovra su un'altro progetto... addirittura non compare nemmeno sulle altre...

    mi rendo conto che la spiegazione non è il massimo... ve la rispiego con un po' di codice

    codice:
    		 
    Container cont = frame.getContentPane();
    
    NJP njp= new NJP( );
    JPanel panN = njp.getPannello();      // il pannello in questione
    		
    		
    JPanel contenitore= new JPanel();
    contenitore.setLayout(new BorderLayout());
    		
    JPanel sopra = new JPanel();
    JButton bottone = new JButton("toSecond");  // ometto gli actionlistener ...tanto abbiamo capito lo scopo
    sopra.add(bottone);
    JButton bottone2 = new JButton("toFirst");
    sopra.add(bottone2);
    contenitore.add(sopra, BorderLayout.NORTH);
    
    
    
    cards = new JPanel();
    cards.setLayout(new CardLayout());
    		
    		JPanel primo = new JPanel();
    		primo.add(panN);
    		primo.add(new JLabel("primo"));
    		cards.add(primo, "primo");
    		
    		
    	//	NJP njp2= new NorthJP("documento");
    	//	JPanel panN2 = centro.getPannello();
    
    		JPanel secondo = new JPanel();
    		secondo.add(panN);
    		secondo.add(new JLabel("secondo"));
    		cards.add(secondo, "secondo");
    		
    		contenitore.add(cards,BorderLayout.CENTER);
    
    		cont.add(contenitore);

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [java] ..anomalie JPanel e CardLayout...

    Originariamente inviato da Pierock
    codice:
    		primo.add(panN);
    
    		secondo.add(panN);
    Un componente ha solo 1 "parente" (non dal punto di vista della ereditarietà ma dal punto di vista strutturale/visivo) ... può stare solo in un contenitore ... non due o più.

    Quindi quel JPanel panN può stare solo in 1 contenitore e basta.

    Devi avere istanze distinte.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.