Limitar quantidade de tentativas

Olá pessoa! :slight_smile:
Não consigo fazer com que o Java releia minhas novas tentativas, quando ele pega o texto, mostra a mensagem de erro até que o while (t<c) seja verdadeiro, ou seja, mostra 3 vezes. Alguém pode me ajudar?

if(txtUsu.getText().isEmpty() || new String (txtSenha.getPassword()).isEmpty()) {
      JOptionPane.showMessageDialog(this, "Preencha todos os campos", "ERRO", JOptionPane.ERROR_MESSAGE);  
   }
   else{
    String usu = txtUsu.getText();
    String senha = new String(txtSenha.getPassword());   
    int t = 0;
    int c = 3;
    
    do{
    String newusu = txtUsu.getText();
    String newsenha = new String(txtSenha.getPassword());
    
    if(usu.equals("adm") && senha.equals("123")){
        JOptionPane.showMessageDialog(this, "Bem-vindo!", "WELCOME", JOptionPane.INFORMATION_MESSAGE);
        Principal n = new Principal();
        dispose();
        n.setVisible(true);
        break;
     }
    else{
      JOptionPane.showMessageDialog(this, "Usuário ou senha inválidos!", "ERRO", JOptionPane.ERROR_MESSAGE);
      limpar();
      t++;
    }
   }
    while(t < c);
     if(t > c){
    JOptionPane.showMessageDialog(this, "Você ultrapassou as "+t+"tentativas restantes.","ERRO", JOptionPane.ERROR_MESSAGE);
    
    }
   }

Não está dando certo porque o loop não está pegando novos valores digitado.
Ou seja, você entra no loop com os valores digitado e nem da tempo de fazer outra tentativa e o loop já executou.
O que você deve fazer é adicionar a variável t como atributo dessa classe que valida o acesso, ai quando clica no botão de login você a incrementa, no final do método do botão você valida se foram 3 vezes e ai manda a mensagem que esgotou as tentativas.