我已声明JLable如下;
l = new JLabel("Hello");
l.setHorizontalAlignment(SwingConstants.CENTER);
panel.add(l);
现在,我想要隐藏或删除它。我该怎么称呼?
我试过l.removeAll();
< ---没什么可恨的。
还有另一个calle remove(int)
,它接受一个int。但我不确定该作为参数传递什么。
还有一种名为hide()
的东西。但它已被弃用。
答案 0 :(得分:5)
i tried l.removeAll(); <--- nothing hapend.
您需要致电remove
JPanel
,JLabel
已添加到:{/ p>
panel.remove(l);
//after that you need to call this to revalidate and repaint the panel
panel.revalidate();
panel.repaint();
隐藏而不是删除电话
l.setVisible(false);
答案 1 :(得分:2)
尝试panel.remove(l);
panel.removeAll()也应该有效,但这也会删除可能已添加到面板中的其他组件。
答案 2 :(得分:2)
你可以尝试:
setVisible(false)
答案 3 :(得分:2)
这可能对您有所帮助
隐藏标签
l.setVisible(false);
通过将Label对象作为参数传递从父项中删除
panel.remove(l);
删除所有组件
panel.removeAll();
答案 4 :(得分:1)
应该使用hide()
告诉setVisible()
的javadoc。因此,请尝试拨打setVisible(false)
。
答案 5 :(得分:0)
我在项目中面临同样的问题。
您应该确保删除以前的控件并刷新面板。
请参阅此代码段:
panel.removeAll();
panel.revalidate();
希望这有助于你 所有最佳:)
答案 6 :(得分:0)
您必须使用方法getContentPane()
。这种方式可以通过组件的声明名称删除元素。
private JFrame frame; private JLabel label; ... frame.getContentPane().remove(label);