[Resolvido] - Métodos duplicados

9 respostas
J

Boa tarde,

Gostaria da ajuda de algum de vocês, pois tenho uma dúvida referente a minha ionterface grafica, é que tenho um item de menu que chama um metodo que faz algumas coisas…
Só que na tela tenho um botão que chama este mesmo método (o menu e o botão fazem exatamente a mesma coisa).

Queria saber se tem como “aproveitar o código” ou tenho que fazer o mesmo codigo na ação dos dois… Tipo, quando clicar no botão chamar a ação do menu…

Grato

9 Respostas

A

nao sei se vai te ajudar mas na hora de adicionar o actionListener da pra vc fazer assim:

meuBotao.addActionListener(this);
meuMenu.addActionListener(this);

através disso num mesmo método da pra vc colocar o mesmo código usando o if

dá pra usar também o action, que é o mais indicado, porém não sei fazer o action, estou procurando no fórum também para poder aprender.

orlandocn

procure pelo conceito “DRY” e pela refatoração “extract method”, existem diversos exemplos na rede.

Lembre-se: a duplicação é a raiz de todo mal

getAdicted

orlandocn:
procure pelo conceito “DRY” e pela refatoração “extract method”, existem diversos exemplos na rede.

Lembre-se: a duplicação é a raiz de todo mal

… e o seu avatar, até o dado momento, é o melhor.

[]'s

getAdicted

getAdicted:
orlandocn:
procure pelo conceito “DRY” e pela refatoração “extract method”, existem diversos exemplos na rede.

Lembre-se: a duplicação é a raiz de todo mal

… e o seu avatar, até o dado momento, é o melhor.

[]'s


Você não orlandocn. Eu me referia ao The King Of Fighters = Takuma!

[COMENTÁRIO INSULTUOSO REMOVIDO PELA MODERAÇÃO]

[EDIT ]Minhas sinceras desculpas aos moderadores e as pessoas que se sentiram ofendidas, se bem que não foi minha intenção.[/EDIT]

[]'s

J

getAdicted:
orlandocn:
procure pelo conceito “DRY” e pela refatoração “extract method”, existem diversos exemplos na rede.

Lembre-se: a duplicação é a raiz de todo mal

… e o seu avatar, até o dado momento, é o melhor.

[]'s

Ok… Grato a todos, vo da uma pesquisada nisso(refatoração).

E getAdicted, KOF é um excelente game… gosto muito(embora não seja um exímio jogador :frowning: ).

J

orlandocn:
procure pelo conceito “DRY” e pela refatoração “extract method”, existem diversos exemplos na rede.

Lembre-se: a duplicação é a raiz de todo mal

Boa noite,

Cara, dei uma pesquisada rápida na net e achei bastante coisa sobre refatoração, cheguei a procurar por “extract method” que acho que é o que quero, mas não achei nada para resolver este problema:

Ex

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jTextArea1.setText("");
        jTextArea2.setText("");
        jLabel4.setText("");
        jLabel7.setText("");
        jLabel8.setText("");
    }
private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        jTextArea1.setText("");
        jTextArea2.setText("");
        jLabel4.setText("");
        jLabel7.setText("");
        jLabel8.setText("");
    }

Os dois métodos bem simplesinhos, apenas apagam algumas coisinhas numa tela… só que é chamado pelo menu e por um botão, nesse caso o que eu poderia fazer num deles pra não ter que repetir no outro?

Eu criei os dois métodos no netBeans, clicando (com o botão direito) num jButton por exemplo e indo em Eventos / Action / actionPerformed… daí só inseri o código…

Grato,

orlandocn

no minimo isso:

private void banana() {                                           
        jTextArea1.setText("");
        jTextArea2.setText("");
        jLabel4.setText("");
        jLabel7.setText("");
        jLabel8.setText("");
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {  
     banana();
}

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
     banana();
}

banana ainda poderia receber uma serie de refatorações dependendo do seu requisito.

ps: com um pouquinho de esforço vc consegue nomes melhores que jTextArea1, jTextArea2, jLabel4, jLabel7, jLabel8, jMenuItem4ActionPerformed, jButton3ActionPerformed e banana

getAdicted
orlandocn:
no minimo isso:
private void banana() {                                           
        jTextArea1.setText("");
        jTextArea2.setText("");
        jLabel4.setText("");
        jLabel7.setText("");
        jLabel8.setText("");
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {  
     banana();
}

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
     banana();
}

banana ainda poderia receber uma serie de refatorações dependendo do seu requisito.

ps: com um pouquinho de esforço vc consegue nomes melhores que jTextArea1, jTextArea2, jLabel4, jLabel7, jLabel8, jMenuItem4ActionPerformed, jButton3ActionPerformed e banana

Olá orlandocn,

Minhas sinceras desculpas se eu o ofendi companheiro, de coração, não foi minha intenção.

[]'s

J
orlandocn:
no minimo isso:
private void banana() {                                           
        jTextArea1.setText("");
        jTextArea2.setText("");
        jLabel4.setText("");
        jLabel7.setText("");
        jLabel8.setText("");
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {  
     banana();
}

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
     banana();
}

banana ainda poderia receber uma serie de refatorações dependendo do seu requisito.

ps: com um pouquinho de esforço vc consegue nomes melhores que jTextArea1, jTextArea2, jLabel4, jLabel7, jLabel8, jMenuItem4ActionPerformed, jButton3ActionPerformed e banana

Grato,

E qto aos nomes tens razão, claro que seria melhor dar nomes, mas dei um exemplo apenas, e não me dei este trabalho :), pra entender o que eu quis falar não precisaria alterar todos os nomes deles :) ...

No trabalho ta tudo bunitinhu... heheheh, meu profº sempre pede isso(não obriga, mas sugere), e entendo que é mais coerente e auxilia até na identificação de métodos por exemplo, daí não tem que ler pra saber o que ele faz...

Grato novamente.

Dúvida sanada por hora, agora terminando o semestre, vo ver se consigo dar uma estudada nisso (MAS mais a fundo, pois vi que tem muita coisa legal, mas que numa lida rápida não "peguei").

Criado 12 de junho de 2011
Ultima resposta 13 de jun. de 2011
Respostas 9
Participantes 4