Tenho 3 jbutton num jform, onde cada um deve imprimir um arquivo jasper diferente. Quando clico no primeiro botao, ele imprime, mas se clico nos outros nao funciona.
Pecebi pelo debug que mesmo clicando, ele nao executa o codigo no actionPerformed do jbutton.
O que pode estar acontecendo?
Posta o codigo pra gente …
Nos outros JButtons vc fez isso
jB.addActionListener(this);
R
rpspereira
cada jbutton tem seu listener. Da uma olhada no codigo
Codigo do primeiro botao:
privateJButtongetJButtonArquivo(){if(jButtonArquivo==null){jButtonArquivo=newJButton();jButtonArquivo.setText("Ficha de Arquivo");jButtonArquivo.setBounds(newjava.awt.Rectangle(15,15,167,35));jButtonArquivo.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){System.out.println("actionPerformed()");// TODO Auto-generated Event stub actionPerformed()reimprimefichaArquivo=newreimprime();try{fichaArquivo.ficha_arquivo(Integer.parseInt(jTextFieldficha_aluguel.getText()));}catch(Exceptionarquivo){// TODO: handle exception}}});}returnjButtonArquivo;}
o codigo do segundo jbutton é:
privateJButtongetJButtonAluguel(){if(jButtonAluguel==null){jButtonAluguel=newJButton();jButtonAluguel.setText("Ficha de Aluguel");jButtonAluguel.setBounds(newjava.awt.Rectangle(15,60,166,33));jButtonAluguel.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){System.out.println("actionPerformed()");// TODO Auto-generated Event stub actionPerformed()try{reimprimefichaAluguel=newreimprime();fichaAluguel.fichalug(Integer.parseInt(jTextFieldficha_aluguel.getText()));}catch(Exceptionaluguel){// TODO: handle exception}}});}returnjButtonAluguel;}
O codigo do terceiro botao é:
publicJButtongetJButtonUsuario(){if(jButtonUsuario==null){jButtonUsuario=newJButton();jButtonUsuario.setText("Ficha de Usuário");jButtonUsuario.setBounds(newjava.awt.Rectangle(15,105,167,36));jButtonUsuario.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){System.out.println("actionPerformed()");// TODO Auto-generated Event stub actionPerformed()reimprimefichaUsuario=newreimprime();try{fichaUsuario.ficha_usuario(Integer.parseInt(jTextFieldficha_aluguel.getText()));}catch(Exceptionusuario){// TODO: handle exception}}});}returnjButtonUsuario;}
Se tiver alguma sugestao, manda ai, to precisando… T+
ramilani12
Te aconselharia a dar um implements na ActionListener e fazer uma estrutura desse tipo:
publicvoidactionPerformed(ActionEventae)
{
if(ae.getSource()==jButtonArquivo){reimprimefichaArquivo=newreimprime(); //o resto do codigo}if(ae.getSource()==jButtonAluguel){reimprimefichaArquivo=newreimprime(); //o resto do codigo}if(ae.getSource()==jButtonUsuario){reimprimefichaArquivo=newreimprime(); //o resto do codigo}
}
O prq disso ?, vc cadastrou o mesmo ouvinte para os 3 jbutton mas cada um tem comportamento diferente
R
rpspereira
vc pode explicar melhor? onde devo colocar esse codigo que vc passou?
quanto a sua pergunta, é que achei que tivesse que colocar um codigo diferente pra cada botao, porque cada botao imprime um arquivo jasper diferente.
T+
ramilani12
Tipo vc cadastrou cada ouvinte para cada jButton qndo disparar o segundo JButton ou terceiro ou primeiro podera entrar no actionPerfomed do 1 button do segundo ou do terceiro o actionPerformed nao sabe quem disparou o evento , por isso cabe ao programador tratar esse eventos, o ActionEvent(Responde por esses componente: jButton , List , MenuItem,PopMenu,TextField) imagine um JFrame com esses componentes como vc tratará esse eventos ?,se vc disparar o MenuItem ele entrará no actionPerformed se vc disparar o JButton tbm entrará no metodo mas actionPerformed nao sabe quem disparou o evento entendeu ?
publicclassAimplementsActionListener{}
// faça isso para cada jButtonprivateJButtongetJButtonArquivo(){if(jButtonArquivo==null){jButtonArquivo=newJButton();jButtonArquivo.setText("Ficha de Arquivo");jButtonArquivo.setBounds(newjava.awt.Rectangle(15,15,167,35));jButtonArquivo.addActionListener(this);// cadastrando o ouvinte }returnjButtonArquivo;}
// Aqui vc trata quem disparou o actionPerformedpublicvoidactionPerformed(ActionEventae){if(ae.getSource()==jButtonArquivo){reimprimefichaArquivo=newreimprime();//o resto do codigo}if(ae.getSource()==jButtonAluguel){reimprimefichaArquivo=newreimprime();//o resto do codigo}if(ae.getSource()==jButtonUsuario){reimprimefichaArquivo=newreimprime();//o resto do codigo}}
R
rpspereira
cara, entendi o que tem que ser feito, mas este actionperformed que vc implementou é o action do form ou do button? onde devo coloca-lo?
ramilani12
é o actionPerformed do JButton o queria seria o Form ?
R
rpspereira
desculpa, nao é form, é frame.
Mas tudo bem agora, consegui resolver do jeito que vc falow…
valew pela ajuda