Gostaria de saber como eu insiro dados em uma jtable.
Eu uso uma table model para controlar jtable
DAO responsavel pela conexão com o banco
como eu consigo fazer os dois metodos se comunicarem de forma que os dados do banco são mostrados da jtable
Gostaria de saber como eu insiro dados em uma jtable.
Eu uso uma table model para controlar jtable
DAO responsavel pela conexão com o banco
como eu consigo fazer os dois metodos se comunicarem de forma que os dados do banco são mostrados da jtable
Cara posta o que vc já fez, fica mais facil.
Gostaria de saber como eu insiro dados em uma jtable.
Eu uso uma table model para controlar jtable
DAO responsavel pela conexão com o banco
como eu consigo fazer os dois metodos se comunicarem de forma que os dados do banco são mostrados da jtable
Bom abaixo segui o que eu fiz mas nao deu certo
List<Produto> lista = daoProduto.buscarTodos();
ProdutoTableModel model = new ProdutoTableModel(lista);//aqui fica grifado a lista ou seja está dando erro.
tblBanco.setModel(model);
Meu codigo da Table Model: Produto
public class Produto {
private String despesa;
private String estabelecimento;
private String datadespesa;
private String valordespesa;
private String formapagamento;
private String datacheque;
private String numerocheque;
public Produto() {
}
public Produto(String despesa,String estabelecimento,String datadespesa,String valordespesa,String formapagamento,String datacheque,String numerocheque) {
this.despesa = despesa;
this.estabelecimento = estabelecimento;
this.datadespesa = datadespesa;
this.valordespesa = valordespesa;
this.formapagamento = formapagamento;
this.datacheque = datacheque;
this.numerocheque = numerocheque;
}
//Gets
public String getDespesa() {
return despesa;
}
public String getEstabelecimento() {
return estabelecimento;
}
public String getDataDespesa() {
return datadespesa;
}
public String getValorDespesa() {
return valordespesa;
}
public String getFormaPagamento() {
return formapagamento;
}
public String getDataCheque() {
return datacheque;
}
public String getNumeroCheque() {
return numerocheque;
}
//Sets
public void setDespesa(String despesa) {
this.despesa = despesa;
}
public void setEstabelecimento(String estabelecimento) {
this.estabelecimento = estabelecimento;
}
public void setDataDespesa(String datadespesa) {
this.datadespesa = datadespesa;
}
public void setValorDespesa(String valordespesa) {
this.valordespesa = valordespesa;
}
public void setFormaPagamento(String formapagamento) {
this.formapagamento = formapagamento;
}
public void setDataCheque(String datacheque) {
this.datacheque = datacheque;
}
public void setNumeroCheque(String numerocheque) {
this.numerocheque = numerocheque;
}
}
Codigo Table Model:ProdutoTableModel
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class ProdutoTableModel extends AbstractTableModel {
//constantes que vão representar as colunas
//(só para facilitar o entendimento do código)
private final int COL_Despesa = 0;
private final int COL_Estabelecimento = 1;
private final int COL_DataDespesa = 2;
private final int COL_ValorDespesa = 3;
private final int COL_FormaPagamento = 4;
private final int COL_DataCheque = 5;
private final int COL_NumeroCheque = 6;
//lista dos produtos que serão exibidos
private List<Produto> produtos;
public ProdutoTableModel() {
produtos = new ArrayList();
}
public ProdutoTableModel(List<Produto> lista) {
this();
produtos.addAll(lista);
}
public int getRowCount() {
//cada produto na lista será uma linha
return produtos.size();
}
public int getColumnCount() {
//vamos exibir só Nome e Quantidade, então são 2 colunas
return 2;
}
@Override
public String getColumnName(int column) {
//qual o nome da coluna
if (column == COL_Despesa) {
return "Despesa";
} else if (column == COL_Estabelecimento) {
return "Estabelecimento";
}
else if (column == COL_DataDespesa) {
return "Data da Despesa";
}
else if (column == COL_ValorDespesa) {
return "Valor da Despesa";
}
else if (column == COL_FormaPagamento) {
return "Forma de Pagamento";
}
else if (column == COL_DataCheque) {
return "Data do Cheque";
}
else if (column == COL_NumeroCheque) {
return "Numero do Cheque";
}
return "";
}
@Override
public Class getColumnClass(int columnIndex) {
//retorna a classe que representa a coluna
if (columnIndex == COL_Despesa) {
return String.class;
} else if (columnIndex == COL_Estabelecimento) {
return String.class;
}
else if (columnIndex == COL_DataDespesa) {
return String.class;
}
else if (columnIndex == COL_ValorDespesa) {
return String.class;
}
else if (columnIndex == COL_FormaPagamento) {
return String.class;
}
else if (columnIndex == COL_DataCheque) {
return String.class;
}
else if (columnIndex == COL_NumeroCheque) {
return String.class;
}
return String.class;
}
public Object getValueAt(int rowIndex, int columnIndex) {
//pega o produto da linha
Produto p = produtos.get(rowIndex);
//verifica qual valor deve ser retornado
if (columnIndex == COL_Despesa) {
return p.getDespesa();
} else if (columnIndex == COL_Estabelecimento) {
return p.getEstabelecimento();
}
else if (columnIndex == COL_DataDespesa) {
return p.getDataDespesa();
}
else if (columnIndex == COL_ValorDespesa) {
return p.getValorDespesa();
}
else if (columnIndex == COL_FormaPagamento) {
return p.getFormaPagamento();
}
else if (columnIndex == COL_DataCheque) {
return p.getDataCheque();
}
else if (columnIndex == COL_NumeroCheque) {
return p.getNumeroCheque();
}
return "";
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
//no nosso caso todas vão ser editáveis, entao retorna true pra todas
return true;
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
//pega o produto da linha
Produto p = produtos.get(rowIndex);
//verifica qual valor vai ser alterado
if (columnIndex == COL_Despesa) {
p.setDespesa(aValue.toString());
} else if (columnIndex == COL_Estabelecimento) {
p.setEstabelecimento(aValue.toString());
}
else if (columnIndex == COL_DataDespesa) {
p.setDataDespesa(aValue.toString());
}
else if (columnIndex == COL_ValorDespesa) {
p.setValorDespesa(aValue.toString());
}
else if (columnIndex == COL_FormaPagamento) {
p.setFormaPagamento(aValue.toString());
}
else if (columnIndex == COL_DataCheque) {
p.setDataCheque(aValue.toString());
}
else if (columnIndex == COL_NumeroCheque) {
p.setNumeroCheque(aValue.toString());
}
//avisa que os dados mudaram
fireTableDataChanged();
}
//-----------------------------------------------------
//Métodos personalizados
//-----------------------------------------------------
public void inserir(Produto p) {
produtos.add(p);
fireTableDataChanged();
}
public void excluir(String pos) {
produtos.remove(pos);
fireTableDataChanged();
}
public void excluir(Produto p) {
produtos.remove(p);
fireTableDataChanged();
}
public void ordenarPorValor() {
//ordena pelo nome
Collections.sort(produtos, new Comparator<Produto>() {
public int compare(Produto o1, Produto o2) {
return o1.getValorDespesa().compareTo(o2.getValorDespesa());
}
});
//avisa que a tabela foi alterada
fireTableDataChanged();
}
public void misturar() {
//mistura a lista
Collections.shuffle(produtos);
//avisa que a tabela foi alterada
fireTableDataChanged();
}
public Produto getCliente(int pos) {
if (pos >= produtos.size()) {
return null;
}
return produtos.get(pos);
}
}
Gostaria de saber aonde esta este erro, e se estou no caminho certo com Table Model, e como faço para inserir meu banco de dados no jtable atraves do tablemodel.