Estou tentando fazer um programa de consulta que envolve tabelas. Já fiz a busca e retornei um ArrayList que deve ser colocado em uma tabela. Esse ArrayList contem todos os dados de cliente que eu preciso. Mas eu estou enrolado neste código abaixo, não sei como associar os elementos DefaultTableModel, JTable, JScrollPane. Se alguém puder corrigir esse código e me apontar o que está errado, eu agradeço. Veja que o setViewport não está aceitando um elemento JTable.
package consulta;
import dao.CliDAO;
import dao.EndEntCliDAO;
import empresavi.BD;
import empresavi.GuiMenuPrincipal;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import model.Cli_entregas;
import model.Clientes;
/**
*
* @author Usuario
*/
public class ConsultaClientes extends JPanel {
CliDAO clientes;
Clientes cliente;
ArrayList<Clientes> listaClientes;
EndEntCliDAO enderecosEntregaCliente;
Cli_entregas cli_entrega;
ArrayList<EndEntCliDAO> listaEntregaClientes;
JTable tabelaClientes, tabelaEntregaClientes;
JScrollPane scrollClientes, scrollEntregaClientes;
JButton btSair;
JLabel lbTituloTela;
public ConsultaClientes() {
inicializarComponentes();
definirEventos();
}
private void inicializarComponentes() {
setLayout(null);
lbTituloTela = new JLabel("Tela de consulta de Clientes");
Font font = new Font("San Serif", Font.PLAIN, 24);
lbTituloTela.setFont(font);
lbTituloTela.setBounds(320, 50, 400, 50);
btSair = new JButton(" Sair ");
btSair.setBounds(850, 700, 100, 25);
scrollClientes = new JScrollPane();
scrollClientes.setBounds(50, 110, 750, 600);
listaClientes = clientes.listarClientes();
DefaultTableModel modeloTabela = new DefaultTableModel(
new String[]{}, 0) {};
modeloTabela.addColumn("CGC ou CPF");
modeloTabela.addColumn("Nome ou Razão");
modeloTabela.addColumn("Cidade");
modeloTabela.addColumn("Telefone");
tabelaClientes = new JTable(modeloTabela);
DefaultTableModel dtmClientes = (DefaultTableModel) tabelaClientes.getModel();
int cont = listaClientes.size();
for(int i = 0; i < cont; i++) {
String dados [] = new String[4];
dados[1] = listaClientes.get(i).getId_cgc_cpf();
dados[2] = listaClientes.get(i).getNome_razao();
dados[3] = listaClientes.get(i).getCidade();
dados[4] = listaClientes.get(i).getTelefone();
dtmClientes.addRow(dados);
}
scrollClientes.setViewport(tabelaClientes);
add(lbTituloTela);
add(btSair);
add(scrollClientes);
}
private void definirEventos() {
btSair.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GuiMenuPrincipal.liberaMenu();
BD.getInstance().close();
setVisible(false);
}
});
}
}