CHECKBOX marcar/desmarcar

Estou utilizando o NetBeans. Talvez esteja com problema de lógica.
SITUAÇÃO: Tenho um painel com diversos checkbox a serem marcados pelo usuário e um checkbox (MARCATUDO) que marca/desmarca todos eles. Até aqui é fácil.
PROBLEMA: Se todos os checkbox iniciam marcados, ao DESMARCAR qualquer um deles, queria que o MARCATUDO ficasse desmarcado.
Não consegui fazer pois está parecendo o cachorro correndo atrás do rabo, pois, ao desmarcar qualquer checkbox envio um comando de desmarcar o MARCATUDO. Mas isso parece que dispara um evento no MARCATUDO para desmarcar todos os checkbox.
Não sei se me fiz entender. Deve ser uma situação clássica. Tem solução?

Posta o seu código

private void jCheckTodasItemStateChanged(java.awt.event.ItemEvent evt) {                                             
    // TODO add your handling code here:
    Component c;

    for (int i = 0; i < jPanel3.getComponentCount(); i++) {
        // c recebe o componente
        c = jPanel3.getComponent(i);
        // ehBoxComExtensao retorna true se estivermos tratando um checkbox
        // com as extensões (jpg, mp4, etc...)
        if (ehBoxComExtensao(c)) {
            if (jCheckTodas.isSelected()) {
                ((JCheckBox) c).setSelected(true);
            }
            else {
                ((JCheckBox) c).setSelected(false);
            }
        }
    }
}



// varre todos os componentes de um painel repassado a procura de quais
// sejam checkbox cujo texto seja uma extensão
private boolean ehBoxComExtensao(Component c) {

    // verifica se é uma instância de CheckBox
    if (c instanceof JCheckBox) {
        String str = ((JCheckBox) c).getText();

        // verifica se NÃO eh o botão "Todas"
        if (!(str.equals(jCheckTodas.getText()))){
           return true;
        }
    }

    return false;
}

Se puder passar o código inteiro da classe, gostaria de tentar reproduzir o problema e também ver como está a adição dos seus listeners.