execução não para [Tá Complicado!]

4 respostas
guisantogui

Boa tarde, tenho um evento no meu programa que gera um arquivo.txt, o problema é o seguinte, sempre que eu clico nesse botão ele gera o arquivo, mas não para a execução. Alguém sabe o que pode estar ocorrendo:

Segue os fontes:

Evento:

private void btnGerarNFEActionPerformed(java.awt.event.ActionEvent evt) {                                            
        List<Produto> lista = new ArrayList<Produto>();

        ProdutoNFETableModel pfent = (ProdutoNFETableModel) tabelaProdutos.getModel();

        for(int i = 0; i < tabelaProdutos.getRowCount()-1; i++){
            lista.add(pfent.getProduto(i));
        }
       
        GeraTxt txt = new GeraTxt();
        txt.geraArq(txFormCnpj.getText(), txtNome.getText(), txtInscEstadual.getText(), txtLogradouro.getText(), txtBairro.getText(), txtNumero.getText(), txtComplemento.getText(), txtMunicipio.getText(), txFormDataSaida.getText(), lista, txtCFOP.getText(), txtTotal.getText(), txtVeiculo.getText());
    }
métodos: Gera o arquivo:
public void geraArq(String CNPJ, String nome, String ie, String end, String bairro, String numero, String compl, String muni, String dataSaida, List<Produto> ls, String CFOP, String Total, String Veiculo){
        FileWriter fw = null;

        try {
            fw = new FileWriter("C:\Intel\notaTeste.txt");

            fw.write(toStringNFE(CNPJ, nome, ie, end, bairro, numero, compl, muni, dataSaida, ls, CFOP, Total, Veiculo));
            fw.flush();
            fw.close();

        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }
Prepara o arquivo:
public String toStringNFE(String CNPJ, String nome, String ie, String end, String bairro, String numero, String compl, String muni, String dataSaida, List<Produto> produtos, String CFOP, String Total, String veiculo){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date data = new Date(Calendar.getInstance(TimeZone.getDefault()).getTimeInMillis());
        String dataStr = sdf.format(data);

        StringBuilder sbpai = new StringBuilder();
        int count = 1;
        StringBuilder sb = new StringBuilder();

        for(Produto p: produtos){
            sb.append("\r\nH|");
            sb.append(count);
            sb.append("|");
            sb.append("\r\nI|");
            sb.append(p.getId());
            sb.append("||");
            sb.append(p.getNomeProd());
            sb.append("|99999999||");
            sb.append(CFOP);
            sb.append("|");
            sb.append(p.getUnidade());
            sb.append("|");
            sb.append(p.getQuantidade());
            sb.append("|");
            sb.append(p.getUnidade());
            sb.append("|");
            sb.append(Total);
            sb.append("||");
            sb.append(p.getUnidade());
            sb.append("|");
            sb.append(p.getQuantidade());
            sb.append("|");
            sb.append(p.getPreco());
            sb.append("|||||1||");
            sb.append("\r\nM \r\nN \r\nN06|0|40 \r\nO|12||||12 \r\nO08|02 \r\nQ \r\nQ04|07 \r\nS \r\nS04|07");
            count ++;
        }
            
        sbpai.append(sb.toString());


        sbpai.append("NOTA FISCAL|1");
        sbpai.append("\r\nA|2.00");
        sbpai.append("\r\nB|43||");
        sbpai.append("VARIAVEL VENDA NO ESTADO"); // trocar
        sbpai.append("|1|55|1|");
        sbpai.append("VAR NRO NOTA FISCAL"); // trocar
        sbpai.append("|");
        sbpai.append(dataStr);
        sbpai.append("|");
        sbpai.append(dataSaida);
        sbpai.append("||1|464564|1|1||1|1|3|2.0.8");
        sbpai.append("\r\nC| NOME||4564565464564||||3 \r\nC02|92828748000103 \r\nC05|NOME|45654||NOME|254764|NOME|RS");
        sbpai.append("\r\nE|");
        sbpai.append(nome);
        sbpai.append("|");
        sbpai.append(ie);
        sbpai.append("|");
        sbpai.append("\r\nE02|");
        sbpai.append("|");
        sbpai.append(CNPJ);
        sbpai.append("\r\nE05|");
        sbpai.append(end);
        sbpai.append("|");
        sbpai.append(numero);
        sbpai.append("|");
        sbpai.append(compl);
        sbpai.append("|");
        sbpai.append(bairro);
        sbpai.append("|");
        sbpai.append(municipio.getMunicipioNome(muni));
        sbpai.append("|");
        sbpai.append(muni);
        sbpai.append("|RS||1058|BRASIL");


        StringBuilder sbfilho = new StringBuilder();
        sbfilho.append("\r\nW");
        sbfilho.append("\r\nW02|");
        sbfilho.append("\r\nX|0");
        sbfilho.append("\r\nX18|");
        sbfilho.append(veiculo);
        sbfilho.append("\r\nZ||");

        sbpai.append(sb.toString());


        sbpai.append(sbfilho);


        return sbpai.toString();
}

4 Respostas

ybadoo

Guisantogui,

Como assim o programa não pará?

Ele fica em loop infinito gravando no arquivo os dados solicitados?

O programa apresenta alguma mensagem de erro durante a execução do mesmo?

Até mais!

Ybadoo
http://www.ybadoo.com.br/

jorhudson
  1. Parece que está num loop infinito, de uma olhada no teste que vc está fazendo com o for .
rafaelviny

testa isso

for(int i = 0; i < tabelaProdutos.getRowCount(); i++){

ou

for(int i = 0; i <= tabelaProdutos.getRowCount()-1; i++){
guisantogui

Galera olhei o loop e ele não ta executando infinitamente! :confused:

E mesmo depois que eu fecho todas janelas ele continua executando :confused:

Não tem algum metodo que eu mate a JVM ??

Criado 7 de abril de 2011
Ultima resposta 11 de abr. de 2011
Respostas 4
Participantes 4