Eventos em Swing!

Bom dia a todos! Tenho um aplicativo desktop com alguns campos que necessitam de formatacao, até aqui nao há segredos, porém desejo exibir uma mensagem de validação quando o usuário for de um campo para outro no caso de preenchimento fora do padrão definido! Alguém pode me dar uma força??

Valeu…

é só criar um listener para o evento lostFocus() assim quando perder o foco vc verifica se foi preenchido do jeito que você precisa.

Entendeu a idéia? ;D

O apêndice sobre Swing da apostila de java e OO da Caelum dá uma idéia de como funciona o controle de eventos no Swing.

Entao, pelo o que entendi devo adicionar um ActionListener ao meu componente da seguinte maneira:

//essa instrucao esta sendo realizada no contrutor da minha classe GUI e meu componente eh JTextField dataField;
dataField.addActionListener(new ActionListener(){
          public void actionPerformed(ActionEvent e){
                 if(!DataValidador.isFormatoValido("12-12-2009")){
                      //fazer alguma coisa
                  }
            }
         }
);

Mas ainda nao sei como vincular o lostFocus() ao listener

dataField.addFocusListener(new java.awt.event.FocusAdapter() {
   public void focusLost(java.awt.event.FocusEvent evt) {
      DataFieldFocusLost(evt);
   }
});

private void DataFieldFocusLost(java.awt.event.FocusEvent evt) {                               
   //sua verificação
}

vê se te ajuda :slight_smile:

Acredito ser melhor utilizar um InputVerifier do seu componente de texto, pois image so o JOpitionPane perde o focus 4 vezes, porque não sei, mas fica mais complicado de tratar pelo focus.

O InputVerifier, verifica a cada caracter digitado se ele pode ou não ser inserido neste campo de texto.

Outra solução seria extender de PlainDocument e verificar da mesma maneira que se fez no InputVerifier.

Att.

Maravilha markin1 … funcionou!!

Agradeco a todos!!

:wink: