Uvida

Tenho uma duvida.
Preciso pegar dados armazenados em um ArrayList e lista-los em uma tabela para gerar um relatório em pdf, mas só estou conseguindo pegar os dados armazenados na primeira posição do meu ArrayList. ABAIXO SEGUE O CÓDIGO.

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package Relatorios;

import classes.Vendas;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
*

  • @author luiz
    */
    public class RelatorioVendas extends javax.swing.JFrame {

    /**

    • Creates new form RelatorioVendas
      */
      public RelatorioVendas() {
      initComponents();
      jBGerarRela.setEnabled(false);
      }

    /**

    • This method is called from within the constructor to initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is always

    • regenerated by the Form Editor.
      */
      @SuppressWarnings(“unchecked”)
      //
      private void initComponents() {

      jPanel1 = new javax.swing.JPanel();
      jCheckBLucroVendas = new javax.swing.JCheckBox();
      jCheckBQtdVendasAno = new javax.swing.JCheckBox();
      jCheckBQtdVendasMes = new javax.swing.JCheckBox();
      jBGerarRela = new javax.swing.JButton();
      jBProcurarDiretorio = new javax.swing.JButton();
      txtCaminho = new javax.swing.JTextField();

      setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

      jPanel1.setBackground(new java.awt.Color(51, 51, 255));
      jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(“Relatório de Vendas”));

      jCheckBLucroVendas.setText(“Lucro de vendas”);

      jCheckBQtdVendasAno.setText(“Quantidade de produtos vendidos no ano”);

      jCheckBQtdVendasMes.setText(" Quantidade de produtos vendidos no mês");

      jBGerarRela.setBackground(new java.awt.Color(255, 51, 102));
      jBGerarRela.setText(“Gerar Relatório”);
      jBGerarRela.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jBGerarRelaActionPerformed(evt);
      }
      });

      jBProcurarDiretorio.setBackground(new java.awt.Color(255, 51, 153));
      jBProcurarDiretorio.setText(“Procurar Diretorio”);
      jBProcurarDiretorio.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      jBProcurarDiretorioActionPerformed(evt);
      }
      });

      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      jPanel1.setLayout(jPanel1Layout);
      jPanel1Layout.setHorizontalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel1Layout.createSequentialGroup()
      .addGap(14, 14, 14)
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel1Layout.createSequentialGroup()
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addComponent(jCheckBQtdVendasMes)
      .addComponent(jCheckBQtdVendasAno)
      .addComponent(jCheckBLucroVendas))
      .addContainerGap(35, Short.MAX_VALUE))
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
      .addComponent(jBGerarRela, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      .addGroup(jPanel1Layout.createSequentialGroup()
      .addComponent(txtCaminho)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      .addComponent(jBProcurarDiretorio)))
      .addGap(16, 16, 16))))
      );
      jPanel1Layout.setVerticalGroup(
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(jPanel1Layout.createSequentialGroup()
      .addGap(19, 19, 19)
      .addComponent(jCheckBLucroVendas)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jCheckBQtdVendasAno)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      .addComponent(jCheckBQtdVendasMes)
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE)
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      .addComponent(jBProcurarDiretorio)
      .addComponent(txtCaminho, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      .addGap(18, 18, 18)
      .addComponent(jBGerarRela)
      .addGap(22, 22, 22))
      );

      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      getContentPane().setLayout(layout);
      layout.setHorizontalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addContainerGap()
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      .addContainerGap())
      );
      layout.setVerticalGroup(
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      .addGroup(layout.createSequentialGroup()
      .addContainerGap()
      .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      );

      pack();
      setLocationRelativeTo(null);
      }//

    private void jBGerarRelaActionPerformed(java.awt.event.ActionEvent evt) {
    Document documentPDF = new Document();
    String prencherNulo = “”;
    String codi = “”;
    String nomePro = “”;
    String quantidade = “”;
    String valorVenda = “”;
    String mesDaVenda = “”;
    String anoDaVenda = “”;
    String valorGasto = “”;
    String lucro = “”;

     try {
         PdfWriter.getInstance(documentPDF, new FileOutputStream(txtCaminho.getText() + "//Relatório de vendas.pdf"));
         PdfPTable tableCa = new PdfPTable(8);
         PdfPTable table = new PdfPTable(8);
         documentPDF.open();
         documentPDF.newPage();
         documentPDF.setPageSize(PageSize.A4);
         Font fonte = new Font(Font.FontFamily.TIMES_ROMAN, 20, Font.BOLD);
         Paragraph cab = new Paragraph("\n RELATÓRIO DE VENDAS ", fonte);
         cab.setAlignment(Element.ALIGN_CENTER);
         documentPDF.add(cab);
         documentPDF.add(new Paragraph("\n"));
         documentPDF.add(new Paragraph("\n"));
         documentPDF.add(new Paragraph("\n"));
     
         for (int i = 0; i < Vendas.vendas.size(); i++) {
             codi = String.valueOf(Vendas.vendas.get(i).getCodProdutoVendido());
             nomePro = Vendas.vendas.get(i).getNome();
             quantidade = String.valueOf(Vendas.vendas.get(i).getQuantidade());
             valorVenda = String.valueOf(Vendas.vendas.get(i).getValorVenda());
             mesDaVenda = String.valueOf(Vendas.vendas.get(i).getMes());
             anoDaVenda = String.valueOf(Vendas.vendas.get(i).getAno());
             valorGasto = String.valueOf(Vendas.vendas.get(i).getValorGasto());
             lucro = String.valueOf(Vendas.vendas.get(i).getLucro());
    
             PdfPCell codC = new PdfPCell(new Paragraph(codi));
             PdfPCell nomeC = new PdfPCell(new Paragraph(nomePro));
             PdfPCell qtdC = new PdfPCell(new Paragraph(quantidade));
             PdfPCell valorC = new PdfPCell(new Paragraph(valorVenda));
             PdfPCell mesVendaC = new PdfPCell(new Paragraph(mesDaVenda));
             PdfPCell anoVendaC = new PdfPCell(new Paragraph(anoDaVenda));
             PdfPCell valorGastoC = new PdfPCell(new Paragraph(valorGasto));
             PdfPCell lucrovendasC = new PdfPCell(new Paragraph(lucro));
    
             if ((jCheckBLucroVendas.isSelected()) && (jCheckBQtdVendasAno.isSelected()) && (jCheckBQtdVendasMes.isSelected())) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell valor = new PdfPCell(new Paragraph("Valor venda"));
                 PdfPCell mesVenda = new PdfPCell(new Paragraph("Mês venda"));
                 PdfPCell anoVenda = new PdfPCell(new Paragraph("Ano venda"));
                 PdfPCell valorGas = new PdfPCell(new Paragraph("Valor gasto"));
                 PdfPCell lucrovendas = new PdfPCell(new Paragraph("Lucro de Vendas"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(valor);
                 tableCa.addCell(mesVenda);
                 tableCa.addCell(anoVenda);
                 tableCa.addCell(valorGas);
                 tableCa.addCell(lucrovendas);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(valorC);
                 table.addCell(mesVendaC);
                 table.addCell(anoVendaC);
                 table.addCell(valorGastoC);
                 table.addCell(lucrovendasC);
    
                 //documentPDF.add(table);
                 break;
             } else if ((jCheckBLucroVendas.isSelected()) && (jCheckBQtdVendasAno.isSelected())) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell valor = new PdfPCell(new Paragraph("Valor venda"));
                 PdfPCell anoVenda = new PdfPCell(new Paragraph("Ano venda"));
                 PdfPCell lucrovendas = new PdfPCell(new Paragraph("Lucro de Vendas"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(valor);
                 tableCa.addCell(anoVenda);
                 tableCa.addCell(lucrovendas);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(valorC);
                 table.addCell(anoVendaC);
                 table.addCell(lucrovendasC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else if ((jCheckBLucroVendas.isSelected()) && (jCheckBQtdVendasMes.isSelected())) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell valor = new PdfPCell(new Paragraph("Valor venda"));
                 PdfPCell mesVenda = new PdfPCell(new Paragraph("Mês venda"));
                 PdfPCell lucrovendas = new PdfPCell(new Paragraph("Lucro de Vendas"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(valor);
                 tableCa.addCell(mesVenda);
                 tableCa.addCell(lucrovendas);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(valorC);
                 table.addCell(mesVendaC);
                 table.addCell(lucrovendasC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else if ((jCheckBQtdVendasAno.isSelected()) && (jCheckBQtdVendasMes.isSelected())) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell mesVenda = new PdfPCell(new Paragraph("Mês venda"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(mesVenda);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(mesVendaC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else if (jCheckBLucroVendas.isSelected()) {
                 PdfPCell lucrovendas = new PdfPCell(new Paragraph("Lucro de Vendas"));
    
                 tableCa.addCell(lucrovendas);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(lucrovendasC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else if (jCheckBQtdVendasAno.isSelected()) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell mesVenda = new PdfPCell(new Paragraph("Mês venda"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(mesVenda);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(mesVendaC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else if (jCheckBQtdVendasMes.isSelected()) {
                 PdfPCell cod = new PdfPCell(new Paragraph("Código"));
                 PdfPCell nome = new PdfPCell(new Paragraph("Nome"));
                 PdfPCell qtd = new PdfPCell(new Paragraph("Quantidade"));
                 PdfPCell anoVenda = new PdfPCell(new Paragraph("Ano venda"));
    
                 tableCa.addCell(cod);
                 tableCa.addCell(nome);
                 tableCa.addCell(qtd);
                 tableCa.addCell(anoVenda);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
                 tableCa.addCell(prencherNulo);
    
                 table.addCell(codC);
                 table.addCell(nomeC);
                 table.addCell(qtdC);
                 table.addCell(anoVendaC);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
                 table.addCell(prencherNulo);
    
                 //documentPDF.add(table);
                 break;
             } else {
                 JOptionPane.showMessageDialog(rootPane, "Nenhum tipo de relatório selecionado");
                 break;
             }
         }
         
         documentPDF.add(tableCa);
         
         for (int i = 0; i < Vendas.vendas.size(); i++) {
             documentPDF.add(table);
         }
         
     } catch (DocumentException de) {
         de.printStackTrace();
     } catch (IOException ioe) {
         ioe.printStackTrace();
     } finally {
         documentPDF.close();
         JOptionPane.showMessageDialog(null, "Relatório gerado com sucesso!");
     }
    

    }

    private void jBProcurarDiretorioActionPerformed(java.awt.event.ActionEvent evt) {
    jBGerarRela.setEnabled(true);
    JFileChooser local = new JFileChooser();
    local.setDialogTitle(“Selecione a pasta”);
    local.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

     int opcao = local.showOpenDialog(this);
     if (opcao == JFileChooser.APPROVE_OPTION) {
         File file = new File("caminho");
         file = local.getSelectedFile();
         String caminho = file.getAbsolutePath();
         txtCaminho.setText(caminho);
     }
    

    }

    /**

    • @param args the command line arguments
      /
      public static void main(String args[]) {
      /
      Set the Nimbus look and feel /
      //
      /
      If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

      • For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
        */
        try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if (“Nimbus”.equals(info.getName())) {
        javax.swing.UIManager.setLookAndFeel(info.getClassName());
        break;
        }
        }
        } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(RelatorioVendas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(RelatorioVendas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(RelatorioVendas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(RelatorioVendas.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //

      /* Create and display the form */
      java.awt.EventQueue.invokeLater(new Runnable() {
      public void run() {
      new RelatorioVendas().setVisible(true);
      }
      });
      }

    // Variables declaration - do not modify
    private javax.swing.JButton jBGerarRela;
    private javax.swing.JButton jBProcurarDiretorio;
    private javax.swing.JCheckBox jCheckBLucroVendas;
    private javax.swing.JCheckBox jCheckBQtdVendasAno;
    private javax.swing.JCheckBox jCheckBQtdVendasMes;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField txtCaminho;
    // End of variables declaration
    }

Vou manter esse tópico fechado até que as correções sejam feitas.


  1. Formate o código corretamente para que possamos entender.
  2. Tem certeza que esse post pertence a categoria Ágile?

Para mais informações, leia esse post.