从JPanel完全删除JLabel ... not setVisible(False)

Pin*_*ade 3 java jpanel

我有一个相当简单的问题.我在JFrame上有一个JPanel.我在JPanel上有一个JLabel.我想知道,如何在运行时从JPanel中完全删除JLabel?

ImageIcon image7= new ImageIcon("archmageanim.gif");
JLabel label7 = new JLabel("", image7, JLabel.CENTER);
p.add( label7, "0 , 6" ); //This coordinate has to do with a layout manager I'm using - it 
                          //I'm using - it works fine.
Run Code Online (Sandbox Code Playgroud)

我已经找到了这个解决方案......但是每个人都说"最简单的方法"是设置setVisible(false)......但这并不能真正删除对象-_-.我怎样才能删除它?

Bob*_*ous 8

你不能用它来找到JLabel的父容器,然后使用remove方法吗?

Container parent = label7.getParent();
parent.remove(label7);
parent.validate();
parent.repaint();
Run Code Online (Sandbox Code Playgroud)

这应该完全删除标签,然后刷新父Container.