boa noite, criei minha tabela assim:
[code]package classes;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.AbstractTableModel;
public class TabelaModelo extends AbstractTableModel {
private List linhas;
private String[] colunas = null;
// Métodos Geters
public String[] getColunas() {
return colunas;
}
public List getLinhas() {
return linhas;
}
// Métodos Seters
public void setColunas(String[] strings) {
colunas = strings;
}
public void setLinhas(ArrayList list) {
linhas = list;
}
// Construtores
public TabelaModelo() {
}
public TabelaModelo(ArrayList dados, String[] colunas) {
setLinhas(dados);
setColunas(colunas);
}
/**
* Retorna o numero de colunas no modelo
*
* @see javax.swing.table.TableModel#getColumnCount()
*/
public int getColumnCount() {
return getColunas().length;
}
/**
* Retorna o numero de linhas existentes no modelo
*
* @see javax.swing.table.TableModel#getRowCount()
*/
public int getRowCount() {
return getLinhas().size();
}
/**
* Obtem o valor na linha e coluna
*
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
public Object getValueAt(int rowIndex, int columnIndex) {
// Obtem a linha, que é uma String []
String[] linha = (String[]) getLinhas().get(rowIndex);
// Retorna o objeto que esta na coluna
return linha[columnIndex];
}
public JTable createJTable() {
ArrayList dados = new ArrayList();
String[] colunas = new String[] { "Estado", "Cidade" };
// Alimenta as linhas de dados
dados.add(new String[] { "SP", "São Paulo" });
dados.add(new String[] { "RJ", "Rio de Janeiro" });
dados.add(new String[] { "RN", "Rio Grande do Norte" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
TabelaModelo modelo = new TabelaModelo(dados, colunas);
JTable jtable = new JTable(modelo);
jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
return jtable;
}
public void setValueAt(Object value, int row, int col) {
// Obtem a linha, que é uma String []
String[] linha = (String[]) getLinhas().get(row);
// Altera o conteudo no indice da coluna passado
linha[col] = (String) value;
// dispara o evento de celula alterada
fireTableCellUpdated(row, col);
}
public void addRow(String[] dadosLinha) {
getLinhas().add(dadosLinha);
// Informa a jtable de que houve linhas incluidas no modelo
// COmo adicionamos no final, pegamos o tamanho total do modelo
// menos 1 para obter a linha incluida.
int linha = getLinhas().size() - 1;
fireTableRowsInserted(linha, linha);
return;
}
public void removeRow(int row) {
getLinhas().remove(0);
// informa a jtable que houve dados deletados passando a
// linha reovida
fireTableRowsDeleted(row, row);
}
/**
* Remove a linha pelo valor da coluna informada
*
* @param val
* @param col
* @return
*/
public boolean removeRow(String val, int col) {
// obtem o iterator
Iterator i = getLinhas().iterator();
int linha = 0;
// Faz um looping em cima das linhas
while (i.hasNext()) {
// Obtem as colunas da linha atual
String[] linhaCorrente = (String[]) i.next();
linha++;
// compara o conteudo String da linha atual na coluna desejada
// com o valor informado
if (linhaCorrente[col].equals(val)) {
getLinhas().remove(linha);
// informa a jtable que houve dados deletados passando a
// linha removida
fireTableRowsDeleted(linha, linha);
return true;
}
}
// Nao encontrou nada
return false;
}
}
[/code]
gostaria de saber como implemento essa parte do código pra carregar os dados com a Lista da minha classe ClienteDAO…
esse é o metodo da que monta minha tabela…
[code]public JTable createJTable() {
ArrayList dados = new ArrayList();
String[] colunas = new String[] { "Estado", "Cidade" };
// Alimenta as linhas de dados
dados.add(new String[] { "SP", "São Paulo" });
dados.add(new String[] { "RJ", "Rio de Janeiro" });
dados.add(new String[] { "RN", "Rio Grande do Norte" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
dados.add(new String[] { "ES", "Espirito Santo" });
TabelaModelo modelo = new TabelaModelo(dados, colunas);
JTable jtable = new JTable(modelo);
jtable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
return jtable;
} [/code]
essa é minha classe ClienteDAO:
[code]
package banco;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import classes.Cliente;
public class ClienteDAO {
private Connection conexao;
public ClienteDAO() {
this.conexao = new ConnectionFactory().getConnection();
}
public List<Cliente> retornaTodas() {
List<Cliente> pessoas = new List<Cliente>();
try {
String sql = "select * from cliente";
PreparedStatement stmt = conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Cliente pessoa1 = new Cliente();
pessoa1.setNome(rs.getString("nome"));
pessoa1.setCpf(rs.getString("cpf"));
pessoa1.setEndereco(rs.getString("endereco"));
pessoa1.setNumero(rs.getString("numero"));
pessoa1.setBairro(rs.getString("bairro"));
pessoa1.setTelefone(rs.getString("telefone"));
pessoa1.setEmail(rs.getString("email"));
pessoas.add(pessoa1);
}
rs.close();
stmt.close();
return pessoas;
} catch (Exception e) {
// TODO: handle exception
}
return null;
}
public void insereBanco(Cliente pessoa) {
String sql = "insert into pessoa (nome, cpf, bairro) values(?,?,?)";
java.sql.PreparedStatement stmt;
try {
stmt = conexao.prepareStatement(sql);
stmt.setString(1, pessoa.getNome());
stmt.setString(2, pessoa.getCpf());
stmt.setString(3, pessoa.getBairro());
stmt.execute();
conexao.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}[/code]