Forma(s) de manipular eventos

7 respostas
g13ydson

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.

7 Respostas

JoatanGuj

Não entendi oque você quer :shock: lol tem como me explicar melhor?.

você quer fazer oque exatamente? ^^

ViniGodoy

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.

JoatanGuj

:shock: Guj é uma Faculdade mesmo :smiley:

ViniGodoy

Bom, frequentado por professores de faculdade (como eu e vários outros membros do fórum) ele é. :slight_smile:

julianolandim

g13ydson:
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.
            }
        });
}
ViniGodoy

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.

julianolandim

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+

Criado 7 de setembro de 2011
Ultima resposta 7 de set. de 2011
Respostas 7
Participantes 4