[RESOLVIDO]Problema com JTable

1 resposta
D

E aí galera, estou fazendo um projeto na faculdade, é um sistema para uma pizzaria. Nele eu já coloquei cadastro de clientes, cadastro de pizzas, e sistemas de pedido. Na parte de clientes e pizza, fiz um relatório com todos os cadastros, usando um JTable, quero fazer um relatório de pedidos, estou fazendo da mesma maneira, usando o mesmo código mas a tabela simplesmente não carrega, já debuguei e está tudo certinho, ele reconhece a quantia de linhas que a tabela tem, porém as linhas ficam em branco. Segue o código:

package apresentacao;

import java.util.ArrayList;

import javax.swing.table.AbstractTableModel;

import modelo.TabelaE;

public class PedidoTableModel extends AbstractTableModel{
	
	private ArrayList<TabelaE> lista = new ArrayList<TabelaE>();

	private String[] colunas = new String[] { "Cod. Ped.", "Data Ped.", "Hora", "Cod. Cli.", "Nome Cli.", 
											"Total Ped.", "Entrega", "Sabor Pizza", "Quantidade" };
	
	@Override
	public int getColumnCount() {
		
		return colunas.length;
	}

	@Override
	public int getRowCount() {
		
		return lista == null ? 0 : lista.size();
	}
	
	
	@Override
	public Object getValueAt(int linha, int coluna) {
		TabelaE tabela = new TabelaE();
		
		switch(coluna) {
		case 0:
			return tabela.codped;
		case 1:
			return tabela.dataped;
		case 2:
			return tabela.horaped;
		case 3:
			return tabela.codcli;
		case 4:
			return tabela.nome;
		case 5:
			return tabela.totalped;
		case 6:
			return tabela.entrega;
		case 7:
			return tabela.sabor;
		case 8:
			return tabela.quantidade;
		default:
			return null;
		} 
	}
	

	public String getColumnName(int coluna) {
		return colunas[coluna];
	}
	
	public TabelaE getValueAt(int linha) {
		return lista.get(linha);
	}
	
	public void setResultSet(ArrayList<TabelaE> novaLista) {
		if (novaLista != null) {
			lista = novaLista;
		} else {
			lista = new ArrayList<TabelaE>();
		}
		
		fireTableChanged(null);  //avisa que os dados foram atualizados
	}
}
public ArrayList<TabelaE> listar() throws SQLException{
		ArrayList<TabelaE> lista = new ArrayList<TabelaE>();
		Connection conexao = Conexao.getConexao();
		
		String sql = "SELECT pedido. * , cliente.nome_cli, itenspedido.quantidade, pizza.sabor "+
					"FROM pedido " +
					"INNER JOIN cliente ON pedido.codcli = cliente.id "+
					"INNER JOIN itenspedido ON pedido.codped = itenspedido.codped "+
					"INNER JOIN pizza ON itenspedido.codpizza = pizza.codigopizza "+
					"ORDER BY pedido.codped"; 
		
		ResultSet dados = conexao.createStatement().executeQuery(sql);
		
		while(dados.next()) {
			lista.add(Instanciar(dados));
		}
		
		conexao.close();
		return lista;
	}
private void popularTabelaRelatorio() {
			
			try {
				PedidoP pedido = new PedidoP();
				modelo.setResultSet(pedido.listar());
				
			} catch (Exception e) {
				System.out.println(e.getMessage());
			}
		}

Obrigado!!

1 Resposta

D

Galera, já consegui. O problema estava no método getValueAt do PedidoTableModel, ele estava criando uma nova TabelaE, e não pegando o da linha passada. Obrigado

Criado 22 de novembro de 2014
Ultima resposta 22 de nov. de 2014
Respostas 1
Participantes 1