Desabilitar campos dentro de jPanel

Caros colegas, bom dia!

No meu formulário, tenho 5 jPanels, dentro de cada alguns campos que serão preenchido no ato do cadastro. O que gostaria de deixar estes jPanels desabilitados, para que quando clicar no botão “novo”, estes possam ser habilitados.
Fiz este método:

private void desabilitaPanel(){
        jPanelDados1.setEnabled(false);
        jPanelDados2.setEnabled(false);
        jPanelDados3.setEnabled(false);
        jPanelDados4.setEnabled(false);
        jPanelDados5.setEnabled(false);
}

E quando clicasse no botão Novo, esses jPanels habilitariam. Fiz dessa forma:

private void jButtonNovoActionPerformed(java.awt.event.ActionEvent evt) {                                            
        jPanelDados1.setEnabled(true);
        jPanelDados2.setEnabled(true);
        jPanelDados3.setEnabled(true);
        jPanelDados4.setEnabled(true);
        jPanelDados5.setEnabled(true);
       (...)
    }     

Mas não deu certo, os campos continuam habilitados. O que estou fazendo de errado?

Obrigado a todos.

Você está habilitando e desabilitando somente os seus jPanels, para habilitar e desabilitar campos ou botões você deve fazer o setEnabled para cada item!

Ou para facilitar, como o jPanel é um container, você pode criar um método de validação para fazer isso e passar o container desejado por parâmetro.

@gusmborges

Ola Jovem, criei este método para vc. Ele bloqueia ou libera campos, de acordo com o que vc deseja:

public void bloquearLiberarCampos(boolean acao){
    Component[] componentes = seuComponentePainelAqui.getComponents(); // altere para o nome da variavel do seu painel
    for (Component componente : componentes) {
        componente.setEnabled(acao);
    }
}

Este é o código do seu botão, perceba que estou setando false, logo, ele irá deixar o setEnable como false (Bloqueando os campos).

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    bloquearLiberarCampos(false); // Escolha, true ou false
}

Já que vc possui 5 painels, recomendo fazer da seguinte forma:

Coloque isso no Metodo Construtor:

private javax.swing.JPanel[] paineis; // isso é fora do metodo construtor

public SuaClasse(){
    initComponents(); // acho q vc tem isso
    paineis = new javax.swing.JPanel[5];
    paineis[0] = jPanel1;
    paineis[1] = jPanel2;
    paineis[2] = jPanel3;
    paineis[3] = jPanel4;
    paineis[4] = jPanel5; // Eu coloco em cada indice do vetor, o painel que quero indicar
}

Ae o botão fica assim:

for (javax.swing.JPanel painel : paineis) {
        bloquearLiberarCampos(painel, false);
}

E o método:

public void bloquearLiberarCampos(javax.swing.JPanel painel, boolean acao) {
    Component[] componentes = painel.getComponents(); // altere para o nome da variavel do seu painel
    for (Component componente : componentes) {
        componente.setEnabled(acao);
    }
}

4mega,

Muito obrigado, funcionou!!!

Evidente que sim meu caro Watson.