Erro ao Inserir dados no MSSQL pelo Java

Antes de qualquer coisa, eu to DESESPERADO. Enfim, to tentando inserir dados de uns TextFields em uma tabela no banco, só que ta dando esse erro “Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “””, começou do nada, antes tava dando. Eu uso DefaultTableModel e só Deus pode me julgar por isso, não tenho intelecto suficiente pra usar AbstractTableModel.

Classe TelaLivro

[code]package fronteira;

import javax.swing.table.DefaultTableModel;
import modelo.Livro;
import persistencia.PerLivro;

/**
*

  • @author Administrador
    */
    public class TelaLivro extends javax.swing.JFrame {
    String isbn, titulo, genero, tipo, autor, editora;
    int edicao;

    /** Creates new form NewJFrame */
    public TelaLivro() {
    initComponents();

// DefaultTableModel modelo= (DefaultTableModel) tblLivro.getModel(); listar();
}

@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    jDesktopPane1 = new javax.swing.JDesktopPane();
    lblEdicao = new javax.swing.JLabel();
    lblTitulo = new javax.swing.JLabel();
    lblAutor = new javax.swing.JLabel();
    lblEditora = new javax.swing.JLabel();
    txtAutor = new javax.swing.JTextField();
    txtEdicao = new javax.swing.JTextField();
    txtEditora = new javax.swing.JTextField();
    lblISBN = new javax.swing.JLabel();
    lblGenero = new javax.swing.JLabel();
    txtGenero = new javax.swing.JTextField();
    bttLimpar = new javax.swing.JButton();
    txtISBN = new javax.swing.JTextField();
    bttOk = new javax.swing.JButton();
    lblTipo = new javax.swing.JLabel();
    txtTipo = new javax.swing.JTextField();
    txtTitulo = new javax.swing.JTextField();
    jScrollPane1 = new javax.swing.JScrollPane();
    tblLivro = new javax.swing.JTable();
    bttAlterar = new javax.swing.JButton();
    bttExcluir = new javax.swing.JButton();
    jButton1 = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    setTitle("Cadastrar Livros");

    lblEdicao.setText("Edição");

    lblTitulo.setText("Titulo");

    lblAutor.setText("Autor");

    lblEditora.setText("Editora");

    txtAutor.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            txtAutorActionPerformed(evt);
        }
    });

    txtEdicao.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            txtEdicaoActionPerformed(evt);
        }
    });

    txtEditora.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            txtEditoraActionPerformed(evt);
        }
    });

    lblISBN.setText("ISBN");

    lblGenero.setText("Gênero");

    bttLimpar.setText("Limpar");
    bttLimpar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bttLimparActionPerformed(evt);
        }
    });

    txtISBN.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            txtISBNActionPerformed(evt);
        }
    });

    bttOk.setText("OK");
    bttOk.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bttOkActionPerformed(evt);
        }
    });

    lblTipo.setText("Tipo");

    jScrollPane1.setPreferredSize(new java.awt.Dimension(469, 402));

    tblLivro.setModel(new javax.swing.table.DefaultTableModel(
        new Object [][] {

        },
        new String [] {
            "Titulo", "Autor", "Editora", "Gênero", "Edição", "ISBN", "Tipo"
        }
    ) {
        Class[] types = new Class [] {
            java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
        };

        public Class getColumnClass(int columnIndex) {
            return types [columnIndex];
        }
    });
    tblLivro.setMinimumSize(new java.awt.Dimension(200, 0));
    tblLivro.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
    tblLivro.addMouseListener(new java.awt.event.MouseAdapter() {
        public void mouseClicked(java.awt.event.MouseEvent evt) {
            tblLivroMouseClicked(evt);
        }
    });
    jScrollPane1.setViewportView(tblLivro);

    bttAlterar.setText("Alterar");
    bttAlterar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bttAlterarActionPerformed(evt);
        }
    });

    bttExcluir.setText("Excluir");
    bttExcluir.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bttExcluirActionPerformed(evt);
        }
    });

    jButton1.setText("jButton1");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 599, Short.MAX_VALUE)
                .addGroup(layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(lblEdicao, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(lblTitulo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lblAutor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(lblEditora))
                        .addComponent(bttAlterar))
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(bttExcluir)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                            .addComponent(jButton1)
                            .addGap(104, 104, 104)
                            .addComponent(bttLimpar)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(bttOk, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addComponent(txtTitulo, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
                        .addComponent(txtAutor, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(txtEditora, javax.swing.GroupLayout.PREFERRED_SIZE, 217, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(lblGenero)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtGenero))
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(txtEdicao, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(lblISBN, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtISBN, javax.swing.GroupLayout.DEFAULT_SIZE, 188, Short.MAX_VALUE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(lblTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                            .addComponent(txtTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 173, javax.swing.GroupLayout.PREFERRED_SIZE)))))
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(lblTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(layout.createSequentialGroup()
                    .addGap(4, 4, 4)
                    .addComponent(txtTitulo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                .addComponent(lblAutor, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(txtAutor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addComponent(lblEditora)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(6, 6, 6)
                        .addComponent(lblGenero))
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(txtGenero, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(txtEditora, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addComponent(lblEdicao)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                    .addComponent(txtEdicao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtTipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(txtISBN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lblTipo, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(lblISBN)))
            .addGap(18, 18, 18)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(bttOk)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(bttLimpar)
                    .addComponent(bttAlterar)
                    .addComponent(bttExcluir)
                    .addComponent(jButton1)))
            .addGap(19, 19, 19)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
            .addContainerGap())
    );

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

private void txtAutorActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:

}

private void txtEdicaoActionPerformed(java.awt.event.ActionEvent evt) {                                          
    // TODO add your handling code here:

}

private void txtEditoraActionPerformed(java.awt.event.ActionEvent evt) {                                           
    // TODO add your handling code here:

}

private void bttLimparActionPerformed(java.awt.event.ActionEvent evt) {                                          
    limpar();

}

private void txtISBNActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:

}

private void bttOkActionPerformed(java.awt.event.ActionEvent evt) {                                      
    salvar();
    Livro livro=new Livro();
    livro.setTitulo(txtTitulo.getText());
    livro.setAutor(txtAutor.getText());
    livro.setEditora(txtEditora.getText());
    livro.setGenero(txtGenero.getText());
    livro.setIsbn(txtISBN.getText());
    livro.setTipo(txtTipo.getText());
    livro.setEdicao(Integer.parseInt(txtEdicao.getText()));
    PerLivro perlivro=new PerLivro();
    perlivro.gravar(livro);
    limpar();
}                                     

private void tblLivroMouseClicked(java.awt.event.MouseEvent evt) {                                      
    int selecionado = tblLivro.getSelectedRow();

txtTitulo.setText((String) tblLivro.getValueAt(selecionado,0));
txtAutor.setText((String) tblLivro.getValueAt(selecionado,1));
txtEditora.setText((String) tblLivro.getValueAt(selecionado,2));
txtISBN.setText((String) tblLivro.getValueAt(selecionado,5));
txtTipo.setText((String) tblLivro.getValueAt(selecionado,6));
txtGenero.setText((String) tblLivro.getValueAt(selecionado,3));
txtEdicao.setText((String) tblLivro.getValueAt(selecionado,4));
isbn=txtISBN.getText();
titulo=txtTitulo.getText();
autor=txtAutor.getText();
editora=txtEditora.getText();
tipo=txtTipo.getText();
genero=txtGenero.getText();

// edicao=Integer.parseInt(txtEdicao.getText());

}                                     

private void bttAlterarActionPerformed(java.awt.event.ActionEvent evt) {                                           
   PerLivro perlivro=new PerLivro();
   perlivro.alterar(isbn, titulo, edicao, genero, tipo, autor, editora);
  
 

   

}                                          

private void bttExcluirActionPerformed(java.awt.event.ActionEvent evt) {                                           
    PerLivro perlivro=new PerLivro();
    perlivro.excluir(isbn);
    ((DefaultTableModel) tblLivro.getModel()).removeRow(tblLivro.getSelectedRow());
    tblLivro.setModel(tblLivro.getModel());
          limpar();
}                                          

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

PerLivro perlivro=new PerLivro();
//definirModelo(null);
//perlivro.listar();// TODO add your handling code here:

}                                        

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new TelaLivro().setVisible(true);
        }
    });
}

// Variables declaration - do not modify                     
private javax.swing.JButton bttAlterar;
private javax.swing.JButton bttExcluir;
private javax.swing.JButton bttLimpar;
private javax.swing.JButton bttOk;
private javax.swing.JButton jButton1;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lblAutor;
private javax.swing.JLabel lblEdicao;
private javax.swing.JLabel lblEditora;
private javax.swing.JLabel lblGenero;
private javax.swing.JLabel lblISBN;
private javax.swing.JLabel lblTipo;
private javax.swing.JLabel lblTitulo;
private javax.swing.JTable tblLivro;
private javax.swing.JTextField txtAutor;
private javax.swing.JTextField txtEdicao;
private javax.swing.JTextField txtEditora;
private javax.swing.JTextField txtGenero;
private javax.swing.JTextField txtISBN;
private javax.swing.JTextField txtTipo;
private javax.swing.JTextField txtTitulo;
// End of variables declaration                   

public void limpar(){
txtTitulo.setText(null);
txtAutor.setText(null);
txtEditora.setText(null);
txtISBN.setText(null);
txtTipo.setText(null);
txtGenero.setText(null);
txtEdicao.setText(null);

}

public void salvar(){
DefaultTableModel modelo= (DefaultTableModel) tblLivro.getModel();
String[] linha=new String[7];
linha[0]=txtTitulo.getText();
linha[1]=txtAutor.getText();
linha[2]=txtEditora.getText();
linha[3]=txtGenero.getText();
linha[4]=txtEdicao.getText();
linha[5]=txtISBN.getText();
linha[6]=txtTipo.getText();
modelo.addRow(linha);
tblLivro.setModel(modelo);

       limpar();

}
////public void definirModelo(String[] linhas){
//// PerLivro perlivro=new PerLivro();
////DefaultTableModel modelo=(DefaultTableModel) tblLivro.getModel();
////
//// modelo.addRow(linhas);
//// tblLivro.setModel(modelo);
////}
//public ArrayListlistar(){
// String sql=“select * from livros”;
// try{
// Connection conn=Conexao.getConexao();
// PreparedStatement pst=conn.prepareStatement(sql);
// ResultSet rs=pst.executeQuery();
// List livros= new ArrayList();
//
// Livro livro;
// while(rs.next()){
// livro=new Livro();
// livro.setTitulo(rs.getString(1));
// livro.setAutor(rs.getString(2));
// livro.setEditora(rs.getString(3));
// livro.setGenero(rs.getString(4));
// livro.setIsbn(rs.getString(5));
// livro.setEdicao(rs.getInt(6));
// livro.setTipo(rs.getString(7));
// livros.add(livro);
// String[] linhas=new String[7];
// linhas[0]=livro.getTitulo();
// linhas[1]=livro.getAutor();
// linhas[2]=livro.getEditora();
// linhas[3]=livro.getGenero();
// linhas[4]=livro.getIsbn();
// linhas[5]=String.valueOf(livro.getEdicao());
// linhas[6]=livro.getTipo();
// DefaultTableModel modelo=(DefaultTableModel) tblLivro.getModel();
// modelo.addRow(linhas);
//
//
//
//
//
// }
//
// return (ArrayList) livros;
//
// }catch(Exception e){
//
// System.out.println("Erro ao gravar livro "+e.toString());
// return null;
// }
// }
}[/code]

Classe PerLivro

[code]package persistencia;

import fronteira.TelaLivro;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import modelo.Livro;

public class PerLivro {
String[] linhas=new String[7];

public void excluir(String isbn) {

 String sql="delete from livros where Isbn=?";
try{ 
        Connection conn=Conexao.getConexao();
        PreparedStatement pst=conn.prepareStatement(sql);

pst.setString(1,isbn);
pst.executeUpdate();

}catch(Exception e){

  System.out.println("Erro excluir: "+e.toString());

}
}
public void gravar(Livro livro){
    String sql="insert into livros(Titulo,Autor,Editora,Genero,Isbn,Edicao,Tipo)values(?,?,?,?,?,?,?)";
    try{
        Connection conn=Conexao.getConexao();
        PreparedStatement pst=conn.prepareStatement(sql);
        pst.setString(1,livro.getTitulo());
        pst.setString(2, livro.getAutor());
        pst.setString(3, livro.getEditora());
        pst.setString(4, livro.getGenero());
        pst.setString(5, livro.getIsbn());
        pst.setInt(6, livro.getEdicao());
        pst.setString(7, livro.getTipo());
        pst.executeUpdate();
    }catch(Exception e){
        System.out.println("Erro ao gravar livro "+e.toString());
    }
    }

public ArrayListlistar(){
String sql=“select * from livros”;
try{
Connection conn=Conexao.getConexao();
PreparedStatement pst=conn.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
ArrayList livros= new ArrayList();

        Livro livro;
        while(rs.next()){
            livro=new Livro();
            livro.setTitulo(rs.getString(1));
            livro.setAutor(rs.getString(2));
            livro.setEditora(rs.getString(3));
            livro.setGenero(rs.getString(4));
            livro.setIsbn(rs.getString(5));
            livro.setEdicao(rs.getInt(6));
            livro.setTipo(rs.getString(7));
            livros.add(livro);
            
            linhas[0]=livro.getTitulo();
            linhas[1]=livro.getAutor();
            linhas[2]=livro.getEditora();
            linhas[3]=livro.getGenero();
            linhas[4]=livro.getIsbn();
            linhas[5]=String.valueOf(livro.getEdicao());
            linhas[6]=livro.getTipo();

// TelaLivro telalivro=new TelaLivro();
// telalivro.definirModelo(linhas);

}
return livros;

}catch(Exception e){

  System.out.println("Erro ao gravar livro "+e.toString());
  return null;
}
    }

public void alterar(String isbn, String titulo, int edicao, String genero, String tipo, String autor, String editora){

 String sql="UPDATE livros SET Titulo='?',Autor='?',Editora='?',Genero='?',Isbn=?,Edicao='?',Tipo='?' WHERE Isbn=?";
try{
        Connection conn=Conexao.getConexao();
        PreparedStatement pst=conn.prepareStatement(sql);
        pst.setString(1,titulo);
        pst.setString(2,autor);
        pst.setString(3,editora);
        pst.setString(4,genero);
        pst.setString(5,isbn);
        pst.setInt(6,edicao);
        pst.setString(7,tipo);
        pst.setString(8,isbn);
        pst.executeUpdate();


}catch(Exception e){

  System.out.println("Erro AO ALTERAR: "+e.toString());

}

}
}
[/code]

Classe Livro

[code]package modelo;

public class Livro {
String titulo, autor, genero, tipo, editora, isbn;
int Edicao;

public int getEdicao() {
    return Edicao;
}

public void setEdicao(int Edicao) {
    this.Edicao = Edicao;
}
public String getAutor() {
    return autor;
}

public void setAutor(String autor) {
    this.autor = autor;
}

public String getEditora() {
    return editora;
}

public void setEditora(String editora) {
    this.editora = editora;
}



public String getGenero() {
    return genero;
}

public void setGenero(String genero) {
    this.genero = genero;
}

public String getIsbn() {
    return isbn;
}

public void setIsbn(String isbn) {
    this.isbn = isbn;
}

public String getTipo() {
    return tipo;
}

public void setTipo(String tipo) {
    this.tipo = tipo;
}

public String getTitulo() {
    return titulo;
}

public void setTitulo(String titulo) {
    this.titulo = titulo;
}

}
[/code]

run:
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at fronteira.TelaLivro.bttOkActionPerformed(TelaLivro.java:289)
at fronteira.TelaLivro.access$500(TelaLivro.java:22)
at fronteira.TelaLivro$6.actionPerformed(TelaLivro.java:112)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

os erros.

[quote]Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:4
at java.lang.Integer.parseInt(Integer.java:470)
at java.lang.Integer.parseInt(Integer.java:499)
at fronteira.TelaLivro.bttOkActionPerformed(TelaLivro.java:289) [/quote]

O erro aconteceu na linha 289, ao fazer o parseInt. O fonte colado não está com as mesmas linhas, mas aconteceu no método ‘bttOkActionPerformed’, e lá só tem 1 parseInt.
Sugiro então colocar o tratamento da Exception:

private void bttOkActionPerformed(java.awt.event.ActionEvent evt) { salvar(); Livro livro=new Livro(); livro.setTitulo(txtTitulo.getText()); livro.setAutor(txtAutor.getText()); livro.setEditora(txtEditora.getText()); livro.setGenero(txtGenero.getText()); livro.setIsbn(txtISBN.getText()); livro.setTipo(txtTipo.getText()); try { livro.setEdicao(Integer.parseInt(txtEdicao.getText())); } catch(NumberFormatException e) { // Supondo que se tiver conteudo inválido (não numérico ou vazio) você queira atribuir Zero livro.setEdicao(0); } PerLivro perlivro=new PerLivro(); perlivro.gravar(livro); limpar(); }

O problema é que tem conteudo sim, eu imprimi o conteudo, e tem o conteudo na TxtField.

Agora só ta indo a Ecicao e como 0 ainda.

Os outros campos ele consegue atribuir o valor?
Se puder passar aqui o valor que ele imprimiu do conteúdo do txtEdicao pra gente ver ficaria mais fácil.
Pode ser que tenha espaços e por isso não conseguiria fazer o parse.
Até é uma boa prática fazer o parse já do txtEdicao.getText().trim() da String.

Não entendi muita coisa, sou estudante ainda. OIHOAIHEA Mas imprimiu o valor que tava no TextField, eu usei o System.ou.printl. O problema agora é que não ta pegando os valores dos TextFields e alocando na classe Livro com os métodos get e set. O que fazer? :confused:

Olá guidodr

Não sou nenhum expert em programação Desktop Java, mas olhando por cima me parece que estes campos text não precisam de ‘ActionListener’.
Eles são necessários para button etc. Mas como disse, não conheço muito Desktop e posso estar falando besteira…

Eu faria um teste comentando/retirando essas linhas:

[code]
/*
txtAutor.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
txtAutorActionPerformed(evt);
}
});

     txtEdicao.addActionListener(new java.awt.event.ActionListener() {  
         public void actionPerformed(java.awt.event.ActionEvent evt) {  
             txtEdicaoActionPerformed(evt);  
         }  
     });  

     txtEditora.addActionListener(new java.awt.event.ActionListener() {  
         public void actionPerformed(java.awt.event.ActionEvent evt) {  
             txtEditoraActionPerformed(evt);  
         }  
     });  

*/[/code]

Mas essa tela eu fiz no Construtor de TEla, Formulário JFrame, então não foi eu que coloquei esse código assim. Só a parte Lógica que eu fiz na mão. :confused:

Eu descobri o problema, ele não ta pegando o conteudo do TextField e alocando na Classe Livro. Ta tudo escrito certo. Só não sei porque ta fazendo isso.

Acho que descobri o bug…

Este método chama primeiro o metodo salvar()…

private void bttOkActionPerformed(java.awt.event.ActionEvent evt) { salvar(); Livro livro=new Livro(); livro.setTitulo(txtTitulo.getText()); livro.setAutor(txtAutor.getText()); livro.setEditora(txtEditora.getText()); livro.setGenero(txtGenero.getText()); livro.setIsbn(txtISBN.getText()); livro.setTipo(txtTipo.getText()); try { livro.setEdicao(Integer.parseInt(txtEdicao.getText())); } catch(NumberFormatException e) { // Supondo que se tiver conteudo inválido (não numérico ou vazio) você queira atribuir Zero livro.setEdicao(0); } PerLivro perlivro=new PerLivro(); perlivro.gravar(livro); limpar(); }
Só que no método salvar você está chamando o limpar…

[code]public void salvar(){
DefaultTableModel modelo= (DefaultTableModel) tblLivro.getModel();
String[] linha=new String[7];
linha[0]=txtTitulo.getText();
linha[1]=txtAutor.getText();
linha[2]=txtEditora.getText();
linha[3]=txtGenero.getText();
linha[4]=txtEdicao.getText();
linha[5]=txtISBN.getText();
linha[6]=txtTipo.getText();
modelo.addRow(linha);
tblLivro.setModel(modelo);

       limpar();  // <----- Aqui o problema

}[/code]
Que por sua vez faz isso:

[code]public void limpar(){
txtTitulo.setText(null);
txtAutor.setText(null);
txtEditora.setText(null);
txtISBN.setText(null);
txtTipo.setText(null);
txtGenero.setText(null);
txtEdicao.setText(null);

}[/code]

Ou seja, a partir dai os campos já estão vazios…

Já consegui resolver esse problema, obrigado pela ajuda jamirdeajr. Tem Twitter[url]?

É, foi esse o problema mesmo. Desculpa. Mas brigadão. To agarrado agora mesmo é no Update.

Falando em update, notei que faltou pegar os valores atuais antes de chamar o método alterar, tem que ficar assim senão ele vai passar os valores originais de quando você clicou na linha:

[code] private void bttAlterarActionPerformed(java.awt.event.ActionEvent evt) {
PerLivro perlivro = new PerLivro();

	isbn = txtISBN.getText();
	titulo = txtTitulo.getText();
	autor = txtAutor.getText();
	editora = txtEditora.getText();
	tipo = txtTipo.getText();
	genero = txtGenero.getText();
	edicao = Integer.parseInt(txtEdicao.getText());

	perlivro.alterar(isbn, titulo, edicao, genero, tipo, autor, editora);
}[/code]

[quote=jamirdeajr]Falando em update, notei que faltou pegar os valores atuais antes de chamar o método alterar, tem que ficar assim senão ele vai passar os valores originais de quando você clicou na linha:

[code] private void bttAlterarActionPerformed(java.awt.event.ActionEvent evt) {
PerLivro perlivro = new PerLivro();

	isbn = txtISBN.getText();
	titulo = txtTitulo.getText();
	autor = txtAutor.getText();
	editora = txtEditora.getText();
	tipo = txtTipo.getText();
	genero = txtGenero.getText();
	edicao = Integer.parseInt(txtEdicao.getText());

	perlivro.alterar(isbn, titulo, edicao, genero, tipo, autor, editora);
}[/code][/quote]

Funcionou, brigadão, to agarrado agora no SELECT. Mas to resolvendo aqui já. MUITO OBRIGADO denovo.