PasswordField

Olá, amigos gostaria de uma ajuda.

estou desenvolvendo uma tela de login, estou validando o login do usuário sendo se o mesmo existir no banco
ativa o campo senha que é um PasswordField.

inicio a aplicação com o PasswordField com setvisible(false), o proble é que quando valida o login o mesmo não ativa com setvisible(true).

alguém poderia ajudar…

Ta dando erro??? manda o codigo ai

Criei um método pra validar o login.
sendo que no construtor da classe jPasswordField inicia com setvisible(false).

private void acesso(){

    if(jTextField_Nome.getText().equals("leo")){
         
       
       jPasswordField_Senha.setVisible(true);
       jPasswordField_Senha.requestFocus();
               
    }
        
}

nesse caso o jpasswor não fica visível de jeito nenhum…
esse é só pra teste.

e quando você chama este método acesso() , colocou ele pra ser executado quando ? em algum evento de algum campo ?

Sim chamo ele na ação do jbuton.

private void jButton_AcessoActionPerformed(java.awt.event.ActionEvent evt) {

    acesso();
    
}

Faz da seguinte forma!

Tira o jpassword.setVisible(false) do construtor, adicione ele no evento formWindowOpened do jFrame, desta forma vai funcionar do jeito que você está esperando.

Bom acho que ai esta o problema… vc add o metodo no construtor, ele não sera visivel.
por que vc nao altera a propriedade de Enable ?

Como vc já setou o componente como visible(false) vc teria que recarregar o formulario novamente para ele aparecer.

Já testei com o Enable, funciona, mais fica com as bordas sobrepostas, só questão de design mesmo, por isso tava tentando usar o setvisible mesmo…

agradeço.

OK, vou testar e retorno…Valeu.

Galera, consegui resolver essa problema, usei a dica do Jonathan Medeiros, segue, form.

package view;

import javax.swing.JOptionPane;

public class Login extends javax.swing.JFrame {

public Login() {
    
    initComponents();
    
    //Aqui vc esta adicionando um novo evento ao seu form
    addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowOpened(java.awt.event.WindowEvent evt) {
            formWindowOpened(evt);//chama o metodo que desativa o jpasswordfield
        }
    });
    
    
}

// End of variables declaration

//Validar Login usuario
private void validar(){
    
    if(jTextField_Nome.getText().equals("leo")){
    
       jPasswordField_Senha.setVisible(true);
       jPasswordField_Senha.requestFocus();
    
    }else{
        
       JOptionPane.showMessageDialog(null,"Login Inválido !!!");
       jTextField_Nome.requestFocus();
        
    }
    
}
//Método para desativar o jPassword
private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
    
    jPasswordField_Senha.setVisible(false);
    
}

}

Funcionou perfeitamente, agora aplicar no meu sistema.

Obrigado a todos.