【问题标题】:JLayeredPane remove(int) method throws no such childJLayeredPane remove(int) 方法不会抛出这样的孩子
【发布时间】:2014-05-20 10:29:52
【问题描述】:

我正在创建 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);

这些面板按照用户输入定义的不同顺序和时间从窗格中放置和移除。

【问题讨论】:

    标签: java swing jlayeredpane


    【解决方案1】:

    remove(int) 从容器中移除第 n 个组件,它与组件添加到的层无关

    最好的办法是尝试通过引用来删除组件,因为自从添加组件后,并不总是可以知道在组件之前添加/插入了任何东西

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 2017-07-19
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-09-14
      • 2017-12-24
      • 1970-01-01
      相关资源
      最近更新 更多