Foco com JPasswordField (Parcialmente Resolvido)

2 respostas
marcoslogan

Eu estou desenvolvendo uma aplicação para a minha loja, para acessar o sistema eu tenho que estar logado.

No meu formulário de conexão do sistema, eu tenho o dois campos login e senha, eu criei duas classes internas para verificar se alguns dos dois campos estão vazios, se algum dos dois estiver vazio. ele mostra uma mensagem e foca no campo que falta preencher, só que no campo senha eu estou usando um JPasswordField. eu fazendo minhas pesquisas acerca do JPasswordField, descobri que o método que retorna o texto é o getPassword, que é um array de char.

o Código fica assim.

if(Senha.getPassword().toString().isEmpty()){
          //Mensagem aqui
    }

só que não funcionou, então tive que fazer com o métod getText e deu certo.

então eu gostaria que alguém me dissesse como eu faço com o método getPassword?

2 Respostas

E
// Versão 1
if (new String (Senha.getPassword()).isEmpty()) {
}

// Versão 2
if (Senha.getPassword().length == 0) {
}
marcoslogan

Olha eu to tendo dificuldades para dar o foco nos seguintes componentes JTextField e o JPasswordField

em um momento eles funcionam como deve ser, no outro eles começam fazer coisas bem estranhas.

eu criei uma classe interna no meu programa para tratar isso.

eu vou colocar aqui.

private class focusHandler extends FocusAdapter{
        private boolean Id_Focus = false;

        public void focusGained(FocusEvent evt){
              if(Id_Focus){
                  JOptionPane.showMessageDialog(null, "O Campo Nome não pode ficar vazio.","Alerta",JOptionPane.WARNING_MESSAGE);
                  NomeText.requestFocus();
                  
              }
         EnderecoText.setText("");

           
        } 

       public void focusLost(FocusEvent evt){
             if(NomeText.getText.isEmpty()){
                 Id_Focus = !Id_Focus;
                 NomeText.requestFocus();
                 EnderecoText.setText("    ");//aqui eu acrescentei essa linha, pois quando eu mudava do jTextField(NomeText) para o JTextField(EnderecoText), ele mudava, só que ele ia para o EnderecoText, então com isso eu mandei ele voltar para o primeiro, então ficava aparecendo as duas mensagens. Quando eu compilei a primeira vez deu certo, quando eu compilei uma segunda vez voltou o mesmo problema, só que agora ele desabilita os JTextField e fica com o foco no primeiro JTextField que é o NomeText.
             }
       }

  
        
    }

Será que alguém pode me ajudar?

Criado 4 de novembro de 2009
Ultima resposta 9 de nov. de 2009
Respostas 2
Participantes 2