我已经声明了一个 JLable 如下;
l = new JLabel("Hello");
l.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(l);
现在,我想隐藏或删除它。我应该调用什么方法?
我试过l.removeAll();
<---没有发生任何事情。
还有另一个remove(int)
需要一个 int 的 calle。但我不确定要传递什么作为参数。
还有一个东西叫hide()
。但它已被弃用。
i tried l.removeAll(); <--- nothing hapend.
您需要调用添加到remove
的位置:JPanel
JLabel
panel.remove(l);
//after that you need to call this to revalidate and repaint the panel
panel.revalidate();
panel.repaint();
只是隐藏而不是删除呼叫
l.setVisible(false);
这可能会帮助你
隐藏标签
l.setVisible(false);
通过将 Label 对象作为参数从父对象中移除
panel.remove(l);
移除所有组件
panel.removeAll();
试试 panel.remove(l);
panel.removeAll() 也应该可以工作,但这也会删除可能已添加到面板的其他组件。
你可以试试:
setVisible(false)
应该使用hide()
tell的 javadoc 。setVisible()
所以试着打电话setVisible(false)
。
我在我的项目中遇到了同样的问题。
您应该确保删除以前的控件并刷新面板。
看到这个片段代码:
panel.removeAll();
panel.revalidate();
希望这能帮助你一切顺利:)
你必须使用方法getContentPane()
。这种方式可以通过组件的声明名称来移除元素。
私有 JFrame 框架; 私人 JLabel 标签; ... frame.getContentPane().remove(label);