我正在尝试重置JLabel数组。标签顶部有图像,所以当我按下按钮时,标签应该被重置。我试着这样做
for(int i=0; i<desks.length; i++)
{
desks[i].setText("");
rightPanel.add(desks[i]);
}
所以,如果有人有想法,那将是伟大的。经理。
答案 0 :(得分:6)
无需将其重新添加到面板中。只需将文本设置为空字符串就足够了。
如果没有发生这种情况,请确保您在事件派发线程上执行此操作,如下所示:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
desks[i].setText("");
}
});
答案 1 :(得分:5)
您不必再次将标签添加到内容窗格以重置其文本。 只需执行以下操作即可清除标签文本:
for(int i=0; i<desks.length; i++)
{
desks[i].setText("");
}
答案 2 :(得分:4)
这是可能的方法之一
int n = panel.getComponentCount();
if (n > 0) {
Component[] components = panel.getComponents();
for (int i = 0; i < components.length; i++) {
if (components[i] instanceof JLabel) {
JLabel label = (JLabel) components[i];
label.setText("");
}
}
}