Salve galera…Eu preciso implementar um ouvinte ou uma lista de ouvintes que recebam o que foi alterado de uma consulta…Por exemplo, eu tenho um cadastro de empresa que abre a consulta de cidades para pegar o codigo da cidade, quero q quando eu pegar esse codigo da cidade um listener passe para a empresa o codigo da cidade q escolhi na consulta.
to tentando assim.
public class ConsultaCidades extends JFrame{
public JTextField codCidade;
public JButton btnClick;
public ConsultaCidades(){
codCidade = new JTextField(10);
btnClick = new JButton("btnClick");
}
//retorna o codigo da cidade
public interface ConsultaCidadeEvent{
public Integer getCodigoCidade();
}
//pega o codigo da cidade selecionada
private interface ConsultaCidadeListener {
public void cidadeSelecionada(ConsultaCidadeEvent evt);
}
//lista de ouvintes
private ArrayList<ConsultaCidadeListener> listeners = new ArrayList<ConsultaCidadeListener>();
//adiciona ouvintes
public void addListener(ConsultaCidadeListener listener){
if(!listeners.contains(listener)){
listeners.add(listener);
}
}
//avisa aos notificadores da mudanca
private void notifyListeners(final Integer codigoCidade) {
ConsultaCidadeEvent evt = new ConsultaCidadeEvent() {
public Integer getCodigoCidade() {
return Integer.parseInt(codCidade.getText());
}
};
}
}
//aqui eh onde tento adicionar um ouvinte e pegar o codigo da cidade
public class CadastroEmpresa implements ConsultaCidadeListener {
public void consultarCidade() {
ConsultaCidade consulta = new ConsultaCidade();
consulta.addListener(this);
consulta.setVisible(true);
}
public void cidadeSelecionada(ConsultaCidadeEvent evt) {
// Este metodo sera invocado quando uma cidade for selecionada.
txtNomeCidade.setText("Cidade escolhida: " + evt.getCodigoCidade());
}
}
Como eu consigo fazer isso ??? Estou na pesquisa mas ainda naum encontrei uma maneira de fazer…
obrigado