Удаление JComponent из CardLayout - PullRequest
       8

Удаление JComponent из CardLayout

4 голосов
/ 20 декабря 2009

Как мне удалить JPanel (или любой другой JComponent) из CardLayout? У меня нет прямого доступа к компоненту, который я хочу удалить, но у меня есть индекс (тот, который используется для отображения Panel, когда мы вызываем cardLayout.show(parentComponent, index);).

1 Ответ

4 голосов
/ 20 декабря 2009

Когда вы говорите index, вы имеете в виду имя (String) компонента, когда он был вставлен, верно? Я не знаю ни одного элегантного способа сделать это, но вы можете попытаться получить все компоненты в этом контейнере (parentComponent) и попытаться найти тот, который имеет то же имя, что и ваш индекс. Например:

Component[] components = parentComponent.getComponents();

for(int i = 0; i < components.length; i++) {
    if(components[i].getName().equals(index)) {
        cardLayout.removeLayoutComponent(components[i]);
    }
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...