Boa tarde galera!
Estou desenvolvendo um sistema para controle interno de notas fiscais. No cadastro das notas estou enfrentando dificuldades na adição dos itens da nota. Essa adição é feita através de um jButton [Add Item] que pega os dados dos jTextField preenchidos e os insere no jTable. O problema é que só consigo inserir 1 (um) item por vez na jTable. O segundo item na verdade substitui o primeiro na tabela.
Estou utilizando duas técnicas.
private void PreencherTabela() {
if (jTable1.getValueAt(0, 0) == null) { //certifica se primeira celula tem conteudo
Connect Con1 = new Connect();
Con1.Conecta();
String sql = "SELECT * FROM produtos WHERE desc_produtos_prod LIKE '"+Descricao.getText()+"'";
Con1.ExecutaSQL(sql);
jTable1.getColumnModel().getColumn(0).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(1).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(2).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(3).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(4).setPreferredWidth(10);
jTable1.getColumnModel().getColumn(5).setPreferredWidth(10);
DefaultTableModel modelotabela = (DefaultTableModel) jTable1.getModel();
modelotabela.setNumRows(0);
try {
Con1.resultset.first();
modelotabela.addRow(new Object[]{
Con1.resultset.getString("cod_prod"),
Descricao.getText(),
Unidade.getText(),
Qtde.getText(),
V_Unit.getText(),
Subtotal.getText()});
Con1.Desconecta();
} catch (SQLException erro) {
JOptionPane.showMessageDialog(null, "Talvez este nome não esteja cadastrado no banco de dados. Tente outro nome. \n" + erro);
}
} else {
Connect Con1 = new Connect();
Con1.Conecta();
String sql = "SELECT * FROM produtos WHERE desc_produtos_prod LIKE '" + Descricao.getText() + "'";
Con1.ExecutaSQL(sql);
try {
Con1.resultset.first();
} catch (SQLException ex) {
Logger.getLogger(Cad_Nota.class.getName()).log(Level.SEVERE, null, ex);
}
try {
Collumnames = new String[] {"Codigo","Descricao","Unidade","Qtde","V.Unitario","Subtotal"};
data = new Object[1][6];
Object[][] temp = new Object[data.length + 1][6]; //Objeto do tipo array que defini linhas e colunas
for (int i = 0; i < data.length; i++) { // laço para percorrer o array (linha)
for (int j = 0; j < 6; j++) { // laço para percorrer o array (coluna)
temp[i][j] = data[i][j];
}
}
temp[data.length][0] = Con1.resultset.getString("cod_prod");
temp[data.length][1] = Descricao.getText();
temp[data.length][2] = Unidade.getText();
temp[data.length][3] = Qtde.getText();
temp[data.length][4] = V_Unit.getText();
temp[data.length][5] = Subtotal.getText();
data = temp;
jTable1.setModel(new DefaultTableModel(data, Collumnames));
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Consigo adicionar o 1º item normal. O problema são as demais linhas. Ele até adiciona uma linha mas sem conteúdo.
Conto com vc’s amigos.

