Olá a todos no forum é o seguinte eu tenho este código:
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class Janela extends JFrame implements ActionListener {
private JButton bt1;
private JButton bt2;
public Janela() {
super("Teste");
this.setSize(150, 300);
Container container= this.getContentPane();
container.setLayout(new GridLayout(2,1));
bt1= new JButton("Botao 1");
bt2= new JButton("Botão 2");
container.add(bt1);
container.add(bt2);
bt1.addActionListener(this);
bt2.addActionListener(this);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// TODO Auto-generated constructor stub
}
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ação Botão 1");
JOptionPane.showMessageDialog(null, "Ação Botão 2");
// TODO Auto-generated method stub
}
}
Ele simplesmente implementa o método da interface Action listener, e quando clico em qualquer um dos dois botões ele executa essas duas ações:
JOptionPane.showMessageDialog(null, “Ação Botão 1”);
JOptionPane.showMessageDialog(null, “Ação Botão 2”);
Mas o que eu queria era definir uma ação diferente no botão1, e outra no botão 2.
Eu sei fazer usando classe anonima, deste jeito:
bt1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Ação do botão 1;
// TODO Auto-generated method stub
}
});
bt2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent act) {
//Ação do botão2
// TODO Auto-generated method stub
}
});
Neste caso criei duas classes anônimas, agora como fazer utilizando a referência this da própria classe, ou eu teria que criar mais uma classe e usar a referência dela??
Quem puder me esclarecer melhor!
Obrigado!