1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Bug em action de botão (Java Swing)

Tenho uma aplicação que possui um Jframe com um formulário e um botão com uma action que faz a inserção desses dados no banco de dados. No caso, meu botão nem sempre funciona. É estranho porque depois que reinicio a aplicação, ele funciona normalmente, porém as vezes o botão simplesmente não faz nada.

Segue código com a action do botão:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {   
String pegacombo = cmbDetalhamento.getSelectedItem().toString();       
       Date data = jDateChooser1.getDate();         
       String value = jTextField2.getText();
       String valor = value.replace(",", ".");
       String placocod = "";

       String pegacombo2 = cmbCobranca.getSelectedItem().toString();
       String fococod = "";


       Cliente c = new Cliente();
       try{
            c.getPropriedades();
            String clicod = c.getClicod();
            PreparedStatement stmt = conn.prepareStatement(
            "SELECT placo_cod FROM plano_contas WHERE placo_modalidade = 'F'"
            + " AND cli_cod ="+clicod+" AND placo_descricao = '"+pegacombo+"'");
            System.out.println(stmt);
        ResultSet rs = stmt.executeQuery();      
        while (rs.next()) {
            placocod = rs.getString("placo_cod");
            //usu_senha = rs.getString("usu_senha");   
        }

            PreparedStatement result = conn.prepareStatement(
            "SELECT foco_cod FROM forma_de_cobranca WHERE cli_cod ="+clicod+" AND foco_nome = '"+pegacombo2+"'");
            System.out.println(result);
            ResultSet rset = result.executeQuery();      
            while (rset.next()) {
                fococod = rset.getString("foco_cod");
                //usu_senha = rs.getString("usu_senha");   
            }


            String commit = "INSERT INTO lancamento_financeiro (foco_cod, lanc_data, lanc_valor, lanc_tipo, placo_cod, cli_cod, hipa_cod) VALUES (?, ?, ?, ?, ?, ?, ?)";
            PreparedStatement insere = conn.prepareStatement(commit);

            insere.setString(1, fococod);
            insere.setDate(2, java.sql.Date.valueOf(new SimpleDateFormat("yyyy-MM-dd").format(data)));
            insere.setString(3, valor);
            insere.setString(4, "Saída");
            insere.setString(5, placocod);
            insere.setString(6, clicod);
            insere.setString(7, "1");

            insere.executeUpdate();


             JOptionPane.showMessageDialog (null, "Lançamento efetuado com sucesso !");

              } catch (IOException e){
           System.out.println("Erro do sistema");
       } catch (SQLException s){
          s.getMessage();
       }

Classe que gera o CONN:

public class ConnectionFactory {
    public Connection getConnection() {
        try {
            return DriverManager.getConnection(
          "jdbc:mysql://186.202.152.83/financeirocone?user=financeirocone&password=Sef4zXoB.164");
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
  • Provavelmente quando você clica uma segunda vez, por exemplo, ele lança alguma exceção, devido voce não estar tratando algo no seu código. Tem como você postar o catch desse seu try?

    Felipe P.   11 de jun de 2014
  • No caso ele não lança nenhuma exceção (no Netbeans pelo menos não aparece nada...) Coloquei o try catch pra você dar uma olhada

    Kinho Costa   11 de jun de 2014
  • não esqueça de usar os recursos do prepared, no caso do seu select, não concatene os parametros na consulta direto, use como voce fez no commit, os coringa e depois atribua os valores a eles.

    Douglas   11 de jun de 2014
  • Seria esse o motivo da ação do botão não funcionar de forma adequada?

    Kinho Costa   11 de jun de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java swing ou faça a sua própria pergunta.