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

时间:2012-07-11 17:51:38

标签: 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.

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

3 个答案:

答案 0 :(得分:8)

您是否可以使用它来查找JLabel的父容器,然后使用remove方法?

Container parent = label7.getParent();
parent.remove(label7);
parent.validate();
parent.repaint();

这应该完全删除标签,然后刷新父容器。

答案 1 :(得分:3)

就是这样。

jpanel.remove(label7);
jpanel.revalidate();
jpanel.repaint();

答案 2 :(得分:0)

jpanel.remove(component);

这是您删除组件所需的全部内容。