Prezados, estou construindo uma aplicação em java desktop usando swing pra construção da interface gráfica, porém estou com o seguinte impedimento : se eu executar a aplicação pelo netbeans funciona tudo corretamente, todavia se eu exportar(limpar e construir) o jar e tentar executa-lo um dos botões para de funcionar . A classe a seguir implementa a interface ActionListener pra eu poder capturar os eventos nos botões da tela. Essa tela tem dois botões, 1 serve pra enviar um e-mail e o outro pra limpar os campos do formulário. O botão pra limpar os campos funciona normalmente, porém o botão pra enviar o e-mail não funciona. Ele só executa a primeira validação(valida se o campo e-mail está preenchido).
Segue o fonte :
`package br.com.xptodev.controller;
import br.com.xptodev.util.Email;
import br.com.xptodev.view.Index;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
/**
*
-
@author xpto
*/
public final class IndexController implements ActionListener {private final Index tela;
public IndexController(Index tela) {
this.tela = tela;limpaCampos(); addListener();}
public void addListener() {
tela.getBtn_enviar().addActionListener(this); tela.getBtn_limpar_campos().addActionListener(this);}
public void limpaCampos() {
tela.getEdit_text_email().setText("");
tela.getEdit_text_assunto().setText("");
tela.getEdit_text_qtd().setText("");
tela.getEdit_text_email().setText("");
tela.getEdit_text_conteudo().setText("");
}@Override
public void actionPerformed(ActionEvent e) {// Enviar E-MAILs if (e.getSource() == tela.getBtn_enviar()) { int quantidade = 0; int controle = 0; String remetente; String senhaRemetente; String email = tela.getEdit_text_email().getText(); String assunto = tela.getEdit_text_assunto().getText(); String qtd = tela.getEdit_text_qtd().getText(); String conteudo = tela.getEdit_text_conteudo().getText(); // Campo e-mail vazio if (email.equals("")) { JOptionPane.showMessageDialog(tela, "Campo e-mail vazio"); return; } // Campo e-mail invalido if (!Email.emailIsValid(email)) { JOptionPane.showMessageDialog(tela, "Campo e-mail iválido"); return; } // Campo assunto vazio if (assunto.equals("")) { JOptionPane.showMessageDialog(tela, "Campo assunto vazio"); return; } // Campo quantidade vazio if (qtd.equals("")) { JOptionPane.showMessageDialog(tela, "Campo quatidade vazio"); return; } try { quantidade = Integer.parseInt(qtd); } catch (NumberFormatException erro) { // Campo quantidade != int JOptionPane.showMessageDialog(tela, "Campo quantidade precisa ser um número"); return; } // Campo conteudo vazio if (conteudo.equals("")) { JOptionPane.showMessageDialog(tela, "Campo conteúdo vazio"); return; } remetente = JOptionPane.showInputDialog(tela, "Digite seu e-mail : "); while (!Email.emailIsValid(remetente)) { remetente = JOptionPane.showInputDialog(tela, "Digite seu e-mail : "); } senhaRemetente = JOptionPane.showInputDialog(tela, "Digite a senha do seu e-mail :"); while (senhaRemetente.equals("")) { senhaRemetente = JOptionPane.showInputDialog(tela, "Digite a senha do seu e-mail :"); } Map<String, String> config = new HashMap<>(); config.put("remetente", remetente); config.put("senha", senhaRemetente); config.put("destinatario", email); config.put("assunto", assunto); config.put("conteudo", conteudo); while (controle < quantidade) { Email.enviaEmail(config); controle++; System.out.println("Enviado " + controle); } } // Limpar Campos if (e.getSource() == tela.getBtn_limpar_campos()) { limpaCampos(); }}
}
`
Alguém sabe o que pode ser?
E não é o return desta instrução
`if (email.equals("")) {
JOptionPane.showMessageDialog(tela, "Campo e-mail vazio");
return;
}`
pois mesmo que não caia nesse if ele não vai pra próxima validação
