2014-05-20 3 views
0

Je crée JLayeredPane (mainFrame) et ajouter des choses à elle comme ceci:JLayeredPane supprimer (int) méthode renvoie pas un tel enfant

JPanel textP= new Scribe(text); //this returns panel with xome text 
textP.setVisible(true); 
mainFrame.add(shakespeare, new Integer(6));/*This is important!!!*/ 
mainFrame.repaint(); 
mainFrame.validate(); 

Plus tard, je suis en train de l'enlever comme ça

mainFrame.remove(6); 

et il lance No such child: 6. D'autres éléments de dessin images fonctionnent très bien:

JPanel imageP = new ImagePanel(image); 
imageP.setVisible(true); 
mainFrame.add(imageP, new Integer(5)); 
mainFrame.repaint(); 
mainFrame.validate(); 
//after a while 
mainFrame.remove(5); 

Ces panneaux sont placés et retirés du volet avec un ordre différent et timings défini par l'entrée d'utilisateur.

Répondre

3

remove(int) supprime le composant n'th du récipient, il ne se rapporte pas à la couche du composant a été ajouté à

La meilleure chose est d'essayer un supprimer le composant par sa référence, car il est pas toujours possible de savoir que rien n'a été ajouté/inséré avant votre composant depuis que vous l'avez ajouté