Olá galera td bem?
Sou iniciante em java e tenho um problema com a minha jTable.
Estou fazendo um cadastro de produtos em uma jFrame, ate ai tudo bem. Consigo fazer o CRUD sem problemas pela interface.
Quando eu executo o meu programa pelo IDENETBeans esta tudo funcionando corretamente, mas quando executo diretamente pelo arquivo .jar eu nao consigo mostrar os dados do meu banco de dados na jTable.
Na minha classe produtos eu fiz o seguinte:
public class jTProdutos extends javax.swing.JFrame {
DefaultTableModel tmProduto = new DefaultTableModel(null, new String[]{"ID", "Nome do Produto", "Nome do Fabricante", "Descrição Produto", "Qtde", "Valor Unitário (R$)", "Gênero", "Dia Cadastro", "Mes Cadastro", "Ano Cadastro", "Dia Fabricação", "Mes Fabricacao", "Ano Fabricação", "Dia Validade", "Mês Fabricação", "Ano Fabricação"});
List<Produto> produtos;
ListSelectionModel lsmProduto;
Abaixo segue o trecho do codigo que desenvolvi para mostrar os resultados na jTable.
public void mostraPesquisa(List<Produto> produtos) {
while (tmProduto.getRowCount() > 0) {
tmProduto.removeRow(0);
}
if (produtos.isEmpty()) {
JOptionPane.showMessageDialog(null, "Nenhum Produto encontrado para esse critério de pesquisa ou o Banco de Dados esta vazio.");
} else {
String[] linha = new String[]{null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null};
for (int i = 0; i < produtos.size(); i++) {
tmProduto.addRow(linha);
tmProduto.setValueAt(produtos.get(i).getID_PRODUTO(), i, 0);
tmProduto.setValueAt(produtos.get(i).getNM_PRODUTO(), i, 1);
tmProduto.setValueAt(produtos.get(i).getDESCRICAO(), i, 2);
tmProduto.setValueAt(produtos.get(i).getNM_FABRICANTE(), i, 3);
tmProduto.setValueAt(produtos.get(i).getQTDE(), i, 4);
tmProduto.setValueAt(produtos.get(i).getVLR_UNITARIO(), i, 5);
tmProduto.setValueAt(produtos.get(i).getGENERO(), i, 6);
tmProduto.setValueAt(produtos.get(i).getDIA_DT_CADASTRO(), i, 7);
tmProduto.setValueAt(produtos.get(i).getMES_DT_CADASTRO(), i, 8);
tmProduto.setValueAt(produtos.get(i).getANO_DT_CADASTRO(), i, 9);
tmProduto.setValueAt(produtos.get(i).getDIA_DT_FABRICACAO(), i, 10);
tmProduto.setValueAt(produtos.get(i).getMES_DT_FABRICACAO(), i, 11);
tmProduto.setValueAt(produtos.get(i).getANO_DT_FABRICACAO(), i, 12);
tmProduto.setValueAt(produtos.get(i).getDIA_DT_VALIDADE(), i, 13);
tmProduto.setValueAt(produtos.get(i).getMES_DT_VALIDADE(), i, 14);
tmProduto.setValueAt(produtos.get(i).getANO_DT_VALIDADE(), i, 15);
}
}
}
Dentro das propriedades da table, na guia Codigo e na opção “Codigo de Pós-Iniciação” eu coloquei esse codigo:
jTTabelaProdutos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lsmProduto = jTTabelaProdutos.getSelectionModel();
lsmProduto.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if(!e.getValueIsAdjusting()){
jTTabelaLinhaSelecionada(jTTabelaProdutos);
}
}
});
Não coloquei o codigo todo aki pois este tem quase 1.000 linhas.
O problema é que quando executo pelo NetBeans esta tudo funcionando normalmente, mas quando executo diretamente pelo meu arquivo .jar, ele nao carrega as informações do jTable.
Obrigado.