Olá amigos, é o seguinte, quando vou atualizar o valor de uma linha no meu TableModel em alguma das 3 primeiras colunas, ocorre o seguinte erro:
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “06/04/2011”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:458)
at java.lang.Integer.parseInt(Integer.java:499)
at util.TransacaoTableModel.setValueAt(TransacaoTableModel.java:135)
Esse erro é na coluna 2 que é String, mas executa esse método que pertence a coluna 3.
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “Conta1”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.valueOf(Double.java:475)
at util.TransacaoTableModel.setValueAt(TransacaoTableModel.java:126)
E esse erro é na coluna 0, excutando o método da coluna 1.
Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “Conta1”
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
at java.lang.Double.valueOf(Double.java:475)
at util.TransacaoTableModel.setValueAt(TransacaoTableModel.java:126)
Eis a classe, espero q alguém possa me dizer oq fiz de errado.
package view;
import control.TransacaoDAO;
import java.awt.Color;
import java.awt.Component;
import java.util.Iterator;
import java.util.List;
import javax.swing.DefaultCellEditor;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import model.Transacao;
import util.TransacaoTableModel;
import util.Utilidades;
public class Principal extends javax.swing.JFrame {
TransacaoTableModel modelReceitas;
TransacaoTableModel modelGastos;
/** Creates new form Principal */
public Principal() {
setIconImage(new ImageIcon(getClass().getResource("/icons/cifrao.gif")).getImage());
initComponents();
Utilidades u = new Utilidades();
modelReceitas = new TransacaoTableModel(new String[] {
"Descrição", "Valor", "Vencimento", "Parcelas","Recebido"});
modelGastos = new TransacaoTableModel(new String[] {
"Descrição", "Valor", "Vencimento", "Parcelas","Pago"});
tbReceitas.setModel(modelReceitas);
tbGastos.setModel(modelGastos);
u.resizeTables(tbReceitas);
u.resizeTables(tbGastos);
carregaDados();
comboMes.setAlignmentX(CENTER_ALIGNMENT);
comboAno.setAlignmentX(CENTER_ALIGNMENT);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void carregaDados(){
TransacaoDAO dao = new TransacaoDAO();
List<Transacao> lista = dao.pesquisaTodos();
String valor;
Utilidades u = new Utilidades();
if(lista.isEmpty())
return;
Transacao ts = new Transacao();
int linhaGastos = 0;
Double totalReceitas = 0.00;
Double totalGastos = 0.00;
Double saldo = 0.00;
for(Iterator it = lista.iterator();it.hasNext();){
ts = (Transacao)it.next();
valor = u.formataValor(ts.getValor());
if(ts.getTipo().equals("Receita")){
totalReceitas = totalReceitas+ts.getValor();
modelReceitas.addTransacao(ts);
}else if(ts.getTipo().equals("Gasto")){
totalGastos = totalGastos+ts.getValor();
modelGastos.addTransacao(ts);
}
}
/*String[]valuesReceita = {"Recebido","Não Recebido"};
String[]valuesGastos = {"Pago","Não Pago"};
TableColumn col = tbReceitas.getColumnModel().getColumn(4);
col.setCellEditor(new MyComboBoxEditor(valuesReceita));
col.setCellRenderer(new MyComboBoxRenderer(valuesReceita));
col = tbGastos.getColumnModel().getColumn(4);
col.setCellEditor(new MyComboBoxEditor(valuesGastos));
col.setCellRenderer(new MyComboBoxRenderer(valuesGastos));*/
saldo = totalReceitas - totalGastos;
tfReceitas.setText(u.formataValor(totalReceitas));
tfGastos.setText(u.formataValor(totalGastos));
tfSaldo.setText(u.formataValor(saldo));
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
tbReceitas = new javax.swing.JTable();
jPanel2 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
tbGastos = new javax.swing.JTable();
comboMes = new javax.swing.JComboBox();
comboAno = new javax.swing.JComboBox();
jToolBar1 = new javax.swing.JToolBar();
btAddTrasacao = new javax.swing.JButton();
btUpTransacao = new javax.swing.JButton();
btDelTransacao = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
labelReceitas = new javax.swing.JLabel();
tfReceitas = new javax.swing.JTextField();
labelGastos = new javax.swing.JLabel();
tfGastos = new javax.swing.JTextField();
jSeparator1 = new javax.swing.JSeparator();
labelSaldo = new javax.swing.JLabel();
tfSaldo = new javax.swing.JTextField();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Cash Control");
setMinimumSize(new java.awt.Dimension(800, 600));
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
formWindowClosing(evt);
}
});
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Receitas"));
tbReceitas.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Descrição", "Valor", "Vencimento", "Parcelas", "Recebido"
}
) {
Class[] types = new Class [] {
java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class
};
boolean[] canEdit = new boolean [] {
false, true, true, true, true
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tbReceitas.setRowHeight(20);
jScrollPane1.setViewportView(tbReceitas);
tbReceitas.getColumnModel().getColumn(1).setResizable(false);
tbReceitas.getColumnModel().getColumn(2).setResizable(false);
tbReceitas.getColumnModel().getColumn(3).setResizable(false);
tbReceitas.getColumnModel().getColumn(4).setResizable(false);
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE)
.addContainerGap())
);
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Gastos"));
tbGastos.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Descrição", "Valor", "Vencimento", "Parcelas", "Pago"
}
) {
Class[] types = new Class [] {
java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Boolean.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
tbGastos.setRowHeight(20);
jScrollPane2.setViewportView(tbGastos);
org.jdesktop.layout.GroupLayout jPanel2Layout = new org.jdesktop.layout.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 885, Short.MAX_VALUE)
.addContainerGap())
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 214, Short.MAX_VALUE)
.addContainerGap())
);
comboMes.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" }));
comboAno.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Ano", "2011" }));
jToolBar1.setRollover(true);
btAddTrasacao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/cadastrar.png"))); // NOI18N
btAddTrasacao.setToolTipText("Nova Transação");
btAddTrasacao.setFocusable(false);
btAddTrasacao.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btAddTrasacao.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(btAddTrasacao);
btUpTransacao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/alterar.png"))); // NOI18N
btUpTransacao.setToolTipText("Alterar Transação");
btUpTransacao.setFocusable(false);
btUpTransacao.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btUpTransacao.setMaximumSize(new java.awt.Dimension(41, 40));
btUpTransacao.setMinimumSize(new java.awt.Dimension(30, 34));
btUpTransacao.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(btUpTransacao);
btDelTransacao.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/excluir.png"))); // NOI18N
btDelTransacao.setFocusable(false);
btDelTransacao.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
btDelTransacao.setMaximumSize(new java.awt.Dimension(41, 40));
btDelTransacao.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
jToolBar1.add(btDelTransacao);
jLabel1.setBackground(new java.awt.Color(24, 33, 214));
jLabel1.setFont(new java.awt.Font("Lucida Grande", 1, 13));
jLabel1.setForeground(new java.awt.Color(0, 0, 255));
jLabel1.setText("Desenvolvido por Hugo da Silva Gomes");
labelReceitas.setText("Total de Receitas");
labelGastos.setText("Total de Gastos");
labelSaldo.setText("Saldo Mensal");
jMenu1.setText("Sobre");
jMenuBar1.add(jMenu1);
setJMenuBar(jMenuBar1);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap()
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(labelReceitas)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(tfReceitas, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 101, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(layout.createSequentialGroup()
.add(comboMes, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(comboAno, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
.add(labelSaldo)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(tfSaldo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 96, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 492, Short.MAX_VALUE)
.add(jLabel1))
.add(org.jdesktop.layout.GroupLayout.TRAILING, jPanel2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(layout.createSequentialGroup()
.add(labelGastos)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(tfGastos, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 106, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(org.jdesktop.layout.GroupLayout.TRAILING, jSeparator1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 933, Short.MAX_VALUE))
.addContainerGap())
.add(org.jdesktop.layout.GroupLayout.TRAILING, jToolBar1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 973, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jToolBar1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(9, 9, 9)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(comboMes, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 29, Short.MAX_VALUE)
.add(comboAno, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(6, 6, 6)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(tfReceitas, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(labelReceitas))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(jPanel2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(0, 0, 0)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(labelGastos)
.add(tfGastos, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(jSeparator1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 10, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(28, 28, 28)
.add(jLabel1))
.add(layout.createSequentialGroup()
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(labelSaldo)
.add(tfSaldo, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
pack();
}// </editor-fold>
private void formWindowClosing(java.awt.event.WindowEvent evt) {
//JOptionPane.showMessageDialog(null, "Funciona!");
System.exit(0);
}
// Variables declaration - do not modify
private javax.swing.JButton btAddTrasacao;
private javax.swing.JButton btDelTransacao;
private javax.swing.JButton btUpTransacao;
private javax.swing.JComboBox comboAno;
private javax.swing.JComboBox comboMes;
private javax.swing.JLabel jLabel1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JToolBar jToolBar1;
private javax.swing.JLabel labelGastos;
private javax.swing.JLabel labelReceitas;
private javax.swing.JLabel labelSaldo;
private javax.swing.JTable tbGastos;
private javax.swing.JTable tbReceitas;
private javax.swing.JTextField tfGastos;
private javax.swing.JTextField tfReceitas;
private javax.swing.JTextField tfSaldo;
// End of variables declaration
public class MyComboBoxRenderer extends JComboBox implements
TableCellRenderer {
public MyComboBoxRenderer(String[] items) {
super(items);
} public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row,
int column) { if (isSelected) {
setForeground(Color.BLACK);
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
} setSelectedItem(value);
return this;
}
} public class MyComboBoxEditor extends DefaultCellEditor {
public MyComboBoxEditor(String[] items) {
super(new JComboBox(items));
}
}
}