Boa noite, pessoal.
Andei pesquisando sobre como utilizar um listener em uma classe externa para tentar organizar o código e não misturar os componentes com a ação dele, também estou tentando atribuir uma ação específica para cada botão, porém minha busca não foi bem sucedida e apelo ao conhecimento dos colegas aqui. Estou fazendo da seguinte forma:
TesteRadioButton
package interfaceGrafica;
public class TesteButton {
public static void main(String[] args) {
RadioButton janelaRadio = new RadioButton("Testando JButton", 200, 200);
janelaRadio.setVisible(true);
}
}
Button
package interfaceGrafica;
import java.awt.FlowLayout;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
public class Button extends JFrame {
public Button (String titulo, int largura, int altura) {
super(titulo);
setLayout( new FlowLayout() );
setSize(largura, altura);
setResizable(false);
setLocationRelativeTo(null);
JButton botao1 = new JButton("Nome 1");
botao1.addActionListener( new ButtonEvento().acao1 );
JButton botao2 = new JButton("Nome 2 ");
botao2.addActionListener( new ButtonEvento().acao2 );
JLabel labelTeste = new JLabel("Label teste");
/*
* Cria um grupo de botões e adiciona os integrantes dele
*/
ButtonGroup grupo = new ButtonGroup();
grupo.add(botao1);
grupo.add(botao2);
/*
* Adiciona os botões e o label no JFrame
*/
this.add(botao1);
this.add(botao2);
this.add(labelTeste);
}
}
ButtonEvento
package interfaceGrafica;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class ButtonEvento implements ActionListener {
public void actionPerformed(ActionEvent evento) {
}
ActionListener acao1 = new ActionListener() {
public void actionPerformed(ActionEvent evento) {
JOptionPane.showMessageDialog(null, "Acao 1");
}
};
ActionListener acao2 = new ActionListener() {
public void actionPerformed(ActionEvent evento) {
JOptionPane.showMessageDialog(null, "Acao 2");
}
};
}
A forma como estou fazendo, está correta? Poderiam me indicar os erros que estou cometendo para que eu pudesse corrigir e fazer da melhor maneira?
Obrigado.
@edit
Me desculpem, possivelmente errei a área de postagem. Poderia mover caso seja necessário?