JExcel API - NullPointerException?

1 resposta
SirDominque

Gente, Estou achando que esse erro é por causa que estou usando o DefaultTableModel

import Auxiliar.NoteFileGen4;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;



import jxl.*;
import jxl.write.*;
import jxl.write.biff.RowsExceededException;



/**
 *
 * @author André
 */
public class ControleEscrita {
    public View view;
    
    public ControleEscrita(View v)
    {
     view = v;
    }
    
    
    
    public boolean escreverApenasNaTabela(String cpf,String parceiro,String dataHora,int row)
    {
        boolean errorHappened = false; //Informa se Ocorreu um Erro
        view.setValueAt(cpf, row,0);
        view.setValueAt(dataHora, row,1);
        view.setValueAt(parceiro, row,2);
        
        row = row + 1;
        view.setLastRow(row);
        
        return errorHappened;
    }
    
    
    public boolean criarArquivoExcel(JTable table) throws RowsExceededException, WriteException
    {
        boolean errorHappened = false; //Informa se Ocorreu um Erro
        ControleDataHora controleDataHora = new ControleDataHora();
        String nomeDoArquivo = controleDataHora.getApenasData();
        nomeDoArquivo = nomeDoArquivo + ".xls";
        System.out.println("" + nomeDoArquivo);
        
        
          try {
          File arquivo = new File(nomeDoArquivo);  
          WritableWorkbook workbook1 = Workbook.createWorkbook(arquivo);
           
          WritableSheet sheet1 = workbook1.createSheet("First Sheet", 0); 
       
          
          TableModel model = table.getModel();
          
          
            for (int i = 0; i < model.getColumnCount(); i++) 
            {
                Label column = new Label(i, 0, model.getColumnName(i));
                sheet1.addCell(column);
            }
            int j = 0;
            for (int i = 0; i < model.getRowCount(); i++) {
                for (j = 0; j < model.getColumnCount(); j++) {
                    Label row = new Label(j, i + 1,model.getValueAt(i, j).toString());
                    sheet1.addCell(row);
                }
            }
            workbook1.write();
            workbook1.close();
      

        }catch (IOException ex) {
           Logger.getLogger(ControleEscrita.class.getName()).log(Level.SEVERE, null, ex);
           System.out.println("" + ex.getMessage());
        }
        
       return errorHappened;
    }
    
    public boolean arquivoExcelExiste()
    {
        boolean existe = false; //
        NoteFileGen4 nfg = new NoteFileGen4();
        
        ControleDataHora controleDataHora = new ControleDataHora();
        String nomeDoArquivo = controleDataHora.getApenasData();
        
        existe = nfg.TestFileExistence(nomeDoArquivo);
        
        
        
        return existe;
    }
    
    
    
}

Minha View que fiz no Netbeans:

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JTable;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
 *
 * @author André
 */
public class View extends javax.swing.JFrame {

    private int lastRow = 0;
    public ControleDataHora controleDataHora = new ControleDataHora();
    public ControleEscrita controleEscrita = new ControleEscrita(this);
    public ControleLeitura controleLeitura = new ControleLeitura();

    /**
     * Creates new form View
     */
    public View() {
        initComponents();
    }

    /**
     * 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")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jScrollPane1 = new javax.swing.JScrollPane();
        jTable_OC = new javax.swing.JTable();
        jTextField_CPF = new javax.swing.JTextField();
        jLabel_CPF = new javax.swing.JLabel();
        jTextField_Parceiro = new javax.swing.JTextField();
        jLabel_Parceiro = new javax.swing.JLabel();
        jTextField_DataHora = new javax.swing.JTextField();
        jButton_GerarDataHora = new javax.swing.JButton();
        jButton_InserirCadastrar = new javax.swing.JButton();
        jLabel_Author = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jButton_Salvar = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenu2 = new javax.swing.JMenu();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jTable_OC.setBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jTable_OC.setFont(new java.awt.Font("Times New Roman", 0, 14)); // NOI18N
        jTable_OC.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "CPF", "Data/Hora", "Parceiro", "#ID"
            }
        ) {
            boolean[] canEdit = new boolean [] {
                false, false, false, false
            };

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTable_OC.setIntercellSpacing(new java.awt.Dimension(1, 2));
        jTable_OC.setRowHeight(18);
        jScrollPane1.setViewportView(jTable_OC);

        jLabel_CPF.setText("CPF");

        jLabel_Parceiro.setText("Parceiro");

        jTextField_DataHora.setEditable(false);

        jButton_GerarDataHora.setText("Gerar Data/Hora");
        jButton_GerarDataHora.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_GerarDataHoraActionPerformed(evt);
            }
        });

        jButton_InserirCadastrar.setText("Inserir/Cadastrar ");
        jButton_InserirCadastrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_InserirCadastrarActionPerformed(evt);
            }
        });

        jLabel_Author.setText("NULL");

        jButton_Salvar.setText("Salvar");
        jButton_Salvar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_SalvarActionPerformed(evt);
            }
        });

        jMenu1.setText("File");
        jMenuBar1.add(jMenu1);

        jMenu2.setText("Edit");
        jMenuBar1.add(jMenu2);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 644, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jTextField_CPF, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(30, 30, 30)
                            .addComponent(jLabel_CPF, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jTextField_Parceiro, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(30, 30, 30)
                            .addComponent(jLabel_Parceiro, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(jTextField_DataHora, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGap(18, 18, 18)
                            .addComponent(jButton_GerarDataHora))
                        .addComponent(jSeparator1)
                        .addComponent(jButton_InserirCadastrar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jLabel_Author, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 161, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jButton_Salvar, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 14, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField_CPF, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel_CPF, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField_Parceiro, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel_Parceiro, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField_DataHora, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jButton_GerarDataHora, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton_InserirCadastrar, javax.swing.GroupLayout.PREFERRED_SIZE, 39, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(65, 65, 65)
                        .addComponent(jButton_Salvar, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(71, 71, 71)
                        .addComponent(jLabel_Author, javax.swing.GroupLayout.PREFERRED_SIZE, 22, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 460, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 9, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void jButton_GerarDataHoraActionPerformed(java.awt.event.ActionEvent evt) {                                                      
        String gerarDataHora = controleDataHora.gerarDataHora();
        jTextField_DataHora.setText(gerarDataHora);
    }                                                     

    private void jButton_InserirCadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                                         
        if(("".equals(jTextField_DataHora.getText()) ) || jTextField_DataHora.getText() == null)
        {
                String gerarDataHora = controleDataHora.gerarDataHora();
                jTextField_DataHora.setText(gerarDataHora);
        } 
        
       
         String cpf = jTextField_CPF.getText();
         String dataHora = jTextField_DataHora.getText();
         String parceiro = jTextField_Parceiro.getText();
        // public boolean escreverApenasNaTabela(String cpf,String parceiro,String dataHora,int row)
         controleEscrita.escreverApenasNaTabela(cpf,parceiro,dataHora,getLastRow());
        
        
      
        
        
        
        
        
    }                                                        

    private void jButton_SalvarActionPerformed(java.awt.event.ActionEvent evt) {                                               
        try {
        final JTable j = jTable_OC;
            
            
            controleEscrita.criarArquivoExcel(j);
        } catch (RowsExceededException ex) {
                 System.out.println("" + ex.getMessage());
        } catch (WriteException ex) {
           System.out.println("" + ex.getMessage());
        }
        
        
    }                                              

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* 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(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(View.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new View().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton_GerarDataHora;
    private javax.swing.JButton jButton_InserirCadastrar;
    private javax.swing.JButton jButton_Salvar;
    private javax.swing.JLabel jLabel_Author;
    private javax.swing.JLabel jLabel_CPF;
    private javax.swing.JLabel jLabel_Parceiro;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator1;
    private javax.swing.JTable jTable_OC;
    private javax.swing.JTextField jTextField_CPF;
    private javax.swing.JTextField jTextField_DataHora;
    private javax.swing.JTextField jTextField_Parceiro;
    // End of variables declaration                   


public void setValueAt(String data,int row,int Column)
{
    jTable_OC.setValueAt(data, row, Column);
    
}

    public int getLastRow() {
        return lastRow;
    }

    public void setLastRow(int lastRow) {
        this.lastRow = lastRow;
    }


    
    
}

1 Resposta

SirDominque

Ahh, esqueci de colocar o ERRO :

Criado 20 de outubro de 2012
Ultima resposta 21 de out. de 2012
Respostas 1
Participantes 1