我正在创建JLayeredPane(mainFrame)并像这样添加内容:
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();
后来我试图像这样删除它
mainFrame.remove(6);
并抛出No such child: 6
。
绘制图像的其他元素工作正常:
JPanel imageP = new ImagePanel(image);
imageP.setVisible(true);
mainFrame.add(imageP, new Integer(5));
mainFrame.repaint();
mainFrame.validate();
//after a while
mainFrame.remove(5);
这些面板是从窗格中放置和移除的,具有由用户输入定义的不同顺序和时间。
答案 0 :(得分:3)
remove(int)
从容器中删除第n个组件,它与组件添加到的层无关
最好的方法是尝试通过引用删除组件,因为在您添加组件之前,并不总是可以知道组件之前没有添加/插入任何内容