Simples, nao sei qual evento eu uso, veja:
txtNome.addCaretListener(new javax.swing.event.CaretListener() {
public void caretUpdate(javax.swing.event.CaretEvent e) {
if (!txtNome.getText().equals("")) {
String nome = DataFormater.formataNome(txtNome
.getText());
try{
theBairro.setNome(nome);
bairroManager.setNome(theBairro.getId(), nome);
}catch (Exception ee){
JOptionPane.showMessageDialog(null, ee.getMessage());
ee.printStackTrace();
}
if (theBairro.getId() != 0) {
bairros.set(index, theBairro.getId());
}
}
}
});
Isso eh para toda vez que alterar o texto, atualizar o nome na classe Bairro, theBairro.setNome(…), então, o problema eh que eu coloquei no CARETUPDATE, entao, ateh mesmo um clique no campo faz executar a funcao, e isso eh por RMI, entao, ateh o fato de clicar no campo executa o caretupdate e faz com que use a rede, eu gostaria de diminuir o uso da rede, mas nao sei qual evento eu uso. No focusLost nao funciona, pq se eu saio do campo com TAB, ele executa o focusLost, mas se eu saio do campo clicando com o mouse sobre um botao, ele nao executa o focusLost.