Pessoal gostaria da opinião de vocês sobre a melhor forma de manipular eventos.
Utilizando a forma mais simples onde o método actionPerformed precisa usar um comando if para testar de qual botão partiu o evento ou criar uma classe interna para cada ouvinte ou ainda utilizar a geração automática do Netbeans? Estou em um projeto e tenho vários botões e fica horrível ter que implementar uma classe para cada ouvinte, mas sei que não é a melhor forma de se fazer isso. Se houver uma outra forma OO legal postem também.
Forma(s) de manipular eventos
7 Respostas
Não entendi oque você quer :shock: lol tem como me explicar melhor?.
você quer fazer oque exatamente? ^^
Use o construtor do netbeans.
Ele é equivalente a criar uma classe interna para cada ouvinte, mas essa classe interna simplesmente chama um método, já definido no próprio netbeans.
Assim o código do botão fica num método do frame, e não da classe interna, e não fica misturado com as demais lógicas de montagem da tela.
O if é a pior das alternativas.
Gera um código tripão, ruim de manter. Não ganha nem em clareza, nem em performance.
:shock: Guj é uma Faculdade mesmo 
Bom, frequentado por professores de faculdade (como eu e vários outros membros do fórum) ele é. 
Pessoal gostaria da opinião de vocês sobre a melhor forma de manipular eventos.
Utilizando a forma mais simples onde o método actionPerformed precisa usar um comando if para testar de qual botão partiu o evento ou criar uma classe interna para cada ouvinte ou ainda utilizar a geração automática do Netbeans? Estou em um projeto e tenho vários botões e fica horrível ter que implementar uma classe para cada ouvinte, mas sei que não é a melhor forma de se fazer isso. Se houver uma outra forma OO legal postem também.
ola,
crie um método para dar a ação ao seu botão
//obs: btnInserir nesse exemplo seria o nome do botao
public void acaoDoBtnInserir(){
btnInserir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
//aqui voce coloca o que voce quer que acontece ao clicar no botao.
}
});
}
Isso ficou estranho, juliano. Esse método só insere o ouvinte no botão, mas não executa a ação inserir, como o nome dele dá a entender.
E ele também faz isso usando uma inner class anônima, alternativa já citada pelo criador do tópico.
eu nao queria mostrar no exemplo como inserir algo e sim como criar um metodo de acao para um botao qualquer, mas lendo direito o que o autor do tópico quer eu vi que nao era isso, eu tinha interpretado errado.
t+