Как удалить JPanel из JFrame перед добавлением нового - PullRequest
1 голос
/ 24 декабря 2011

У меня JPanel уже добавлен в JFrame.И я динамически добавил JPanel.После добавления JPanel на лету он остается рядом с добавленным ранее JPanel.Как я могу удалить предыдущую JPanel?

PS Я также думаю об использовании cardlayout - это хороший способ?

1 Ответ

1 голос
/ 24 декабря 2011

Существует метод getComponents(), который даст вам дочерний компонент в JFrame

вы будете использовать его следующим образом:

Component[] comp = frame.getContentPane().getComponents();
for(int i=0; i<comp.lenght; i++)
{
    if(comp[i] instanceof JPanel)
    {
        frame.remove(comp[i]);
    }
}

Примечание: это исправление работает только тогда, когда у вас есть один JPanel внутри JFrame одновременно, в противном случае вы удалите все свои JPanels из JFrame.

...