Evento clique para mais de um botao

Dae pessoal! sou novo no forum, e ai vai minha duvida…

Eu vi alguns topicos aqui explicando como colocar o evento clique num botao,
mas como faço pra por o evento clique pra mais de um botao sendo que
eles fazem coisas diferentes?..

tipo…

                //...............
		JButton BtSoma=new JButton("Somar");
		JButton BtLimpa=new JButton("Limpar");

		//açao para os botoes
		BtSoma.addActionListener(this);
		BtLimpa.addActionListener(this);
	}
		
	public void actionPerformed(ActionEvet e) 
	{
		n1= Integer.parseInt(TextN1.getText());
		n2= Integer.parseInt(TextN2.getText());
		soma=n1+n2;
		labelResult.setText("Resultado: "+String.valueOf(soma));
	}
	
	public void actionPerformed(ActionEvent e)
	{
		TextN1.setText("");
		TextN2.setText("");
	}

mas como ta ai nao tem como eles saberem quem é de quem…

valeu… t+

tem algumas formas de voce fazer isso…
ou voce faz uma classe ActionListener pra cada botão…

ou você usa um só, e testa qual foi o botão apertado, assim:

public void actionPerformed(ActionEvent ae) {
  JButton botao = (JButton)ae.getSource();
  if (botao==meubotao1) {
    //botao um apertado
  } else if (botao == meubotao2) {
    //botao dois apertado
  }
}

ou então você define seu ActionListener no proprio parametro, o que geralmente é mais útil:

seubotao.addActionListener(new ActionListener() {
  public void actionPerformed(ActionEvent ae) {
    //codigo que deve rodar quando apertar o botao
  }
});

assim você pode usar um novo actionlistener pra cada botao…

Obrigado _Renato
consegui fazer com 5 botoes fazendo uma classe pra cada um… mas esse ai
que vc deu o exemplo eu nao consegui entender. Se der pra explicar
melhor seria uma boa…

valeu

Outra maneira de o fazeres seria criares um mouseListener e reescreveres o método mouseClicked(), adicionando-o depois ao botão que entenderes.

Exemplo: [code] mouseListener l = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//Acções a fazer
}
};

botao.addMouseListener(l);

[/code]

hmmm… muito boa essa maneira SrFabio! obrigado!

Porq nao ta funcionando?

	// Somar	
	MouseListener mais = new MouseAdapter()
	{
		public void mousePressed(MouseEvent e)
		{
			numero = numero + Integer.parseInt(text.getText());
		}
	};
	
	BtMais.addMouseListener(mais);
		
	// Resultado
	MouseListener igual = new MouseAdapter()
	{
		public void mosePressed(MouseEvent e)
		{
			label.setText(String.valueOf(numero));
		}
	};
	
	BtIgual.addMouseListener(igual);

valeu

Qual é o erro que dá?

Lembra-te que para manipulares as labels tens de as ter definidas como static.

Se postares o erro será mais fácil ajudar-te porque a estrutura do código que fizeste está correcta, pelo menos a parte que mostraste.

O erro é nao mostrar o resultado… e dai nao da de saber se ele ta
somando também…

codigo inteiro:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class Calc extends JFrame
{

	public int numero=0;
	public JTextField text = new JTextField();
	public JLabel label = new JLabel("resultado");
	
	public Calc()
	{
	
		
		JButton BtMais = new JButton("+");
		JButton BtMenos = new JButton("-");
		JButton BtDividir = new JButton("/");
		JButton BtVezes = new JButton("*");
		JButton BtIgual = new JButton("=");
		
		
		setLayout(null);
		
		//posiciona o objetos na tela
		text.setSize(100,25);
		text.setLocation(5,5);
		getContentPane().add(text);
		
		BtMais.setSize(50,30);
		BtMais.setLocation(5,35);
		getContentPane().add(BtMais);
		
		BtMenos.setSize(50,30);
		BtMenos.setLocation(5,65);
		getContentPane().add(BtMenos);
		
		BtDividir.setSize(50,30);
		BtDividir.setLocation(55,35);
		getContentPane().add(BtDividir);
		
		BtVezes.setSize(50,30);
		BtVezes.setLocation(55,65);
		getContentPane().add(BtVezes);
		
		BtIgual.setSize(100,30);
		BtIgual.setLocation(5,95);
		getContentPane().add(BtIgual);
		
		label.setSize(100,30);
		label.setLocation(5,125);
		getContentPane().add(label);
	
		// Somar	
		MouseListener mais = new MouseAdapter()
		{
			public void mousePressed(MouseEvent e)
			{
				numero = numero + Integer.parseInt(text.getText());
			}
		};
		
		BtMais.addMouseListener(mais);
			
		// Resultado
		MouseListener igual = new MouseAdapter()
		{
			public void mosePressed(MouseEvent e)
			{
				label.setText(String.valueOf(numero));
			}
		};
	
		BtIgual.addMouseListener(igual);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack();
		setSize(640,480);
		setVisible(true);
	
	}
	
	public static void main(String args[])
	{
		new Calc();
	}
}

Já descobri o teu erro, que em parte é culpa minha também.

No lugar de mousePressed(MouseEvent e) coloca mouseClicked(MouseEvent e). Acontece que o mousePressed é um evento de clique prolongado, refere-se mesmo ao pressionar, enquando que o mouseClicked refere-se a cliques normais(rápidos).

mesmo com o mouseclicked continua nao funcionando… :telazul:

Olha o erro aqui: public void mosePressed(MouseEvent e) eheh.

Putz!.. era só isso mesmo :tosco:
Brigadao cara!