Observação referente a actionPerformed

3 respostas
L

Bom dia, sou iniciante na linguagem java, e estou desenvolvendo em meu TCC um sistema em java plataforma desktop (SE) usando eclipse, tenho uma observação e gostaria que me corrigissem se estiver errado:

Quando faço um evento num botão, utilizo o seguinte código:

JButton botao = new JButton();

		 botao.addActionListener(new java.awt.event.ActionListener() {    
	            public void actionPerformed(java.awt.event.ActionEvent evt) {
                     
                       //código
                  
                        }});

Percebi que ao adicionar um evento ActionListener, estou ultilizando "awt", existe um ActionListener da mesma maneira usando "swing", sendo que meu botão é da classe swing, não quero misturar os dois?

Alem de extender a classe para ActionListener ex:
public class Classe extends JFrame implements ActionListener{

//código

public void actionPerformed(ActionEvent e) {
		//código
	}

}

Por gentileza se ouver outra maneira, ou se não fazer sentido gostaria de ouvir sua opnião.

3 Respostas

lalau
LucasVilarim:
Bom dia, sou iniciante na linguagem java, e estou desenvolvendo em meu TCC um sistema em java plataforma desktop (SE) usando eclipse, tenho uma observação e gostaria que me corrigissem se estiver errado:

Quando faço um evento num botão, utilizo o seguinte código:

JButton botao = new JButton();

		 botao.addActionListener(new java.awt.event.ActionListener() {    
	            public void actionPerformed(java.awt.event.ActionEvent evt) {
                     
                       //código
                  
                        }});

Percebi que ao adicionar um evento ActionListener, estou ultilizando "awt", existe um ActionListener da mesma maneira usando "swing", sendo que meu botão é da classe swing, não quero misturar os dois?

Alem de extender a classe para ActionListener ex:
public class Classe extends JFrame implements ActionListener{

//código

public void actionPerformed(ActionEvent e) {
		//código
	}

}

Por gentileza se ouver outra maneira, ou se não fazer sentido gostaria de ouvir sua opnião.

tem a interface Action ela herda os atributos da ActionListener e EventListener não tenho muita experiencia nisso, mas porque
ta preocupado com o facto do ActionListener pertencer a outro pacote?

OBS: E a classe não estende para ActionListener ela implementa ActionListener e estende JFrame.

E

Bem, na verdade eu entendo o que ele quis dizer, acontece que elementtos awt são heavyweigth(pode ter aparência diferente conforme eo sistema), e swing são ligthweigth(tem a mesma aprarência independente do sistema), então é recomendado nunca se usar um quando se usa o outro.

Mas nesse em particular, vocêdeve entender que você não está misturando os dois. Acontece que quando os caras decidiram criar o swing, eles tentaram deixa-lo mais compatível possível com o que já existia, e os listenner já existiam. Então você num tem que se preocupar de usar esses listenner só porque são de um determinado pacote.

Quanto ao fato de ter que herdar jframe e implementear actionlistenner na mesma classe é uma questão de comodidade. O mais indicado seria usar composição ao invés de heranaça nesses casos. O mesmo serve pro action listenner. Pesquise sobre composição vs herança e você vai acabar descobrindo uma alternativa viável.

E

Bem, na verdade eu entendo o que ele quis dizer, acontece que elementtos awt são heavyweigth(pode ter aparência diferente conforme eo sistema), e swing são ligthweigth(tem a mesma aprarência independente do sistema), então é recomendado nunca se usar um quando se usa o outro.

Mas nesse em particular, vocêdeve entender que você não está misturando os dois. Acontece que quando os caras decidiram criar o swing, eles tentaram deixa-lo mais compatível possível com o que já existia, e os listenner já existiam. Então você num tem que se preocupar de usar esses listenner só porque são de um determinado pacote.

Quanto ao fato de ter que herdar jframe e implementear actionlistenner na mesma classe é uma questão de comodidade. O mais indicado seria usar composição ao invés de heranaça nesses casos. O mesmo serve pro action listenner. Pesquise sobre composição vs herança e você vai acabar descobrindo uma alternativa viável.

Criado 4 de outubro de 2012
Ultima resposta 7 de out. de 2012
Respostas 3
Participantes 3