5

我有一个相当简单的问题。我在 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)......但这并没有真正删除对象-_-。我怎样才能删除它?

4

3 回答 3

9

你不能用这个找到JLabel的父Container,然后使用remove方法吗?

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

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

于 2012-07-11T17:59:51.010 回答
4

就是这个。

jpanel.remove(label7);
jpanel.revalidate();
jpanel.repaint();
于 2012-07-11T17:54:16.333 回答
0

jpanel.remove(component);

这就是删除组件所需的全部调用。

于 2012-07-11T17:54:40.997 回答