Estou tento um problema aqui, tenho o método ActionListener em uma classe de controle, ela recebe o evento de 3 Classes diferentes, sendo que tenho que colocar assim
if(e.getActionCommand().equals("Gerar"))
o que não é uma boa prática, pegar o que está escrito no botão, pois posso ter o mesmo nome escrito em vários botões
se eu tentar colocar assim
if(e.getSource() == principal.getjBotaoGerar())
dá o erro NullPointerException, quando passa em um botão que não está sendo o chamado o evento
Segue a classe com as partes relevantes abaixo, se eu clicar no botão da telaSetor, ele já quando tenta lê o if( == e.getSource()principal.getjBotaoGerar()), não posso iniciarlizar as classes logo de começo da classe GeradorRelatorio, só passar pelo construtor, existe alguma coisa que possa colocar no método ActionListener???
public class GeradorRelatorio implements ActionListener
{
Principal principal;
TelaIndividual telaIndividual;
TelaSetor telaSetor;
public GeradorRelatorio(Principal p)
{
principal = p;
}
public GeradorRelatorio(TelaIndividual ti)
{
telaIndividual = ti;
}
public GeradorRelatorio(TelaSetor ts)
{
telaSetor = ts;
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == principal.getjBotaoGerar())
{
//código aqui
}
if(e.getSource() == telaSetor.getjBotaoExportarSetor())
{
//código aqui
}
if(e.getSource() == telaIndividual.getjBotaoExportar())
{
//código aqui
}
}
}
nas outras classes estão assim
jBotaoGerar.addActionListener(new GeradorRelatorio(this));
jBotaoExportarSetor().addActionListener(new GeradorRelatorio(this));
jBotaoExportar.addActionListener(new GeradorRelatorio(this));