Ir para conteúdo
Fórum Script Brasil
  • 0

Criar um método que preencha uma jTable com ArryList de objetos quando


Leandro - pL

Pergunta

Galera, eu estou a 3 dias vendo vídeos e pdfs, tentei um monte de solução e até agora não consegui fazer a bendita jtable carregar a lista de objetos!! hahahah
Vamos lá, espero que possam me ajudar!!!
Estou usando o WindowBuilder do Eclipse e BD MySql
Primeiramente eu criei uma classe que faz conexão com o BD MySQL e me retorna uma lista com os objetos:
public class OcorrenciaDAO {
 
public ArrayList<Ocorrencia> consultarOcorrencia (){
 
ArrayList <Ocorrencia>lista = new ArrayList<Ocorrencia>();
 
try {
Connection conn = ConectaMySql.obtemConexao();
 
String queryInsert = "SELECT * FROM ocorrencias";
 
PreparedStatement ps = conn.prepareStatement(queryInsert);
 
ResultSet rs = ps.executeQuery();
 
while(rs.next()){
Ocorrencia ocor = new Ocorrencia();
 
ocor.setId(rs.getInt(1));
ocor.setId_atendente(rs.getInt(2));
ocor.setModelo(rs.getString(3));
ocor.setPlaca(rs.getString(4)); 
 
lista.add(ocor);
}  
} catch (Exception e) {
e.printStackTrace();
} 
return lista;
} 
}
Ok, até ae sem nenhum problema, já testei pelo SOAPui e realmente a classe retorna uma lista de objetos.
Baseado em diversos tópicos do fórum e guias, eu criei uma classe para manipular minha jTable:
        public class ModeloTabela extends AbstractTableModel{
 
private ArrayList linhas = null;
private String[] colunas = null;
 
public ModeloTabela (ArrayList lin, String[] col){
setLinhas(lin);
setColunas(col); 
} 
public ArrayList getLinhas(){
return linhas;
}
 
public void setLinhas(ArrayList dados){
linhas = dados;
} 
public String[] getColunas(){
return colunas;
} 
public void setColunas(String[] nomes){
colunas = nomes;
} 
public int getColumnCount(){
return colunas.length;
} 
public int getRowCount(){
return linhas.size();
} 
public String getColumnName(int numCol){
return colunas[numCol];
} 
public Object getValueAt(int numLin, int numCol){
Object[] linha = (Object[])getLinhas().get(numLin);
return linha[numCol];
}
}
Bom, ai eu já não consigo testar, então não sei se esta correta.
Por fim, dentro do meu formulário, eu criei um método que deveria:
1) criar a lista de objetos
2) criar a jTable
public void preencherTabela(){
 
                //Array para receber a lista de objetos e array para receber os nomes do cabeçalho da jTable
ArrayList<Ocorrencia> dados = new ArrayList<Ocorrencia>();
String [] Colunas = new String[]{"ID","Atendente", "Modelo","PLACA"};
//dados recebe a lista de objetos 
OcorrenciaDAO ocDAO = new OcorrenciaDAO();
dados = ocDAO.consultarOcorrencia();
 
//a partir daqui eu não sei explicar direito que ocorre
                ModeloTabela modelo = new ModeloTabela(dados, Colunas);
 
tableOcorrencia = new JTable();
tableOcorrencia.setBounds(10, 164, 530, 199);
tableOcorrencia.setModel(modelo);
 
tableOcorrencia.getColumnModel().getColumn(0).setPreferredWidth(80);
tableOcorrencia.getColumnModel().getColumn(0).setResizable(false);
tableOcorrencia.getColumnModel().getColumn(1).setPreferredWidth(180);
tableOcorrencia.getColumnModel().getColumn(1).setResizable(false);
tableOcorrencia.getColumnModel().getColumn(2).setPreferredWidth(180);
tableOcorrencia.getColumnModel().getColumn(2).setResizable(false);
tableOcorrencia.getColumnModel().getColumn(3).setPreferredWidth(180);
tableOcorrencia.getColumnModel().getColumn(3).setResizable(false);
tableOcorrencia.getTableHeader().setReorderingAllowed(false);
tableOcorrencia.setAutoResizeMode(tableOcorrencia.AUTO_RESIZE_OFF);
tableOcorrencia.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
 
contentPane.add(tableOcorrencia);
 
}
E por fim, chamei esse metodo no evento windows open do meu form:
public ControleOcorrencias(Atendente atendente) {
 
addWindowListener(new WindowAdapter() {
@Override
public void windowOpened(WindowEvent arg0) {
// --> aqui
preencherTabela();
btnAdicionar.setVisible(false);
txtModelo.setEditable(false);
txtPlaca.setEditable(false);
 
}
});
Enfim, em que parte do código eu deveria instaciar a jTable??
Como instanciar ela junto com meu ArrayList?
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...