1.criei uma classe que faz o modelo da tabela
public class ModeloTabela extends AbstractTableModel {
private ArrayList linhas = null;
private String[] colunas = null;
// Abaixo, método responsável por setar a quantidade de linhas e colunas
public ModeloTabela(ArrayList lin, String[] col){
setLinhas(lin);
setColunas(col);
}
// abaixo método para retornar as linhas
public ArrayList getLinhas(){
return linhas;
}
// método para Setar(Fazer) as linhas, preenchar as linhas
public void setLinhas(ArrayList dados){
linhas = dados;
}
public String[] getColunas(){
return colunas;
}
// Responsável por preencher os nomes das colunas
public void setColunas(String[] nomes){
colunas = nomes;
}
//retorna o numero de colunas
public int getColumnCount(){
return colunas.length;
}
//retorna quantidades de linhas
public int getRowCount(){
return linhas.size();
}
// responsável por pegar o valor da colunas
public String getColumnName(int numCol){
return colunas[numCol];
}
// Pega colunas(numCol) e linhas(numLin) para montar a tabela
public Object getValueAt(int numLin, int numCol){
Object[] linha = (Object[])getLinhas().get(numLin);
return linha[numCol];
}
2.coloquei na minha classe controle um metodo responsavel por fazer uma consulta no banco de dados e armazenar em uma List
public List buscarTodosUsuarios() throws SQLException {
conexao.conexao();
String sql = "SELECT * FROM tbusuarios";
pst = conexao.con.prepareStatement(sql);
ResultSet rs;
rs = pst.executeQuery();
List<ModeloUsuario> modelos = new ArrayList<ModeloUsuario>();
while (rs.next()) {
ModeloUsuario modelo = new ModeloUsuario();
modelo.setId(rs.getInt("iduser"));
modelo.setPerfil(rs.getString("perfil"));
modelo.setFone(rs.getString("fone"));
modelo.setLogin(rs.getString("login"));
modelos.add(modelo);
}
rs.close();
return modelos;
}
-
na minha camada view eu criei uma jtable que se chama TABLE…adicionei ela dentro de um JScrollPane
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 313, 410, 311);
panel.add(scrollPane);table = new JTable(); scrollPane.add(table); ArrayList dados = new ArrayList(); String [] Colunas = new String[]{"ID","nome","telefone","login", "perfil"}; try { do{ //preenchendo arrayList com dados do banco de dados que foram passados para a classe modelo dados.add(new Object[]{modelo_usuario.getId(), modelo_usuario.getUsuario().toString(), modelo_usuario.getFone(), modelo_usuario.getLogin(), modelo_usuario.getPerfil()}); //aqui estou querendo fazer while que enquanto exista dados no List ele vá construindo }while(dados.listIte()); } catch (Exception e) { JOptionPane.showMessageDialog(null, e); } ModeloTabela tabelaModelo = new ModeloTabela(dados, Colunas); table.setModel(tabelaModelo); //coluna ID table.getColumnModel().getColumn(0).setPreferredWidth(80); table.getColumnModel().getColumn(0).setResizable(false); //coluna nome table.getColumnModel().getColumn(1).setPreferredWidth(80); table.getColumnModel().getColumn(1).setResizable(false); //coluna telefone table.getColumnModel().getColumn(2).setPreferredWidth(80); table.getColumnModel().getColumn(2).setResizable(false); //coluna login table.getColumnModel().getColumn(3).setPreferredWidth(80); table.getColumnModel().getColumn(3).setResizable(false); //coluna perfil table.getColumnModel().getColumn(4).setPreferredWidth(80); table.getColumnModel().getColumn(4).setResizable(false); table.getTableHeader().setReorderingAllowed(false); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); //só sera possivel selecionar um item table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);