[RESOLVIDO] Atribuir resultado de um array list em um JTable

Pessoal,

estou com certa urgência em um determinado código o que está dificultando um pouco eu pesquisar uma solução para o problema.
É a primeira vez que estou tentando utilizar um JTable e minha questão é fácil.
Preciso adicionar o resultado de um select que estará armazenado em um array list em um JTable, porém não estou conseguindo.
Veja trecho do código (Incompleto)

	       AuxModDocto dao = new AuxModDocto();
	       
		   List<ConsAuxModDocto> lista = dao.getListaModDocto();
			 
		   //Recupera as informações do modelo documento
			for(ConsAuxModDocto construtor : lista)
			 {
				codModDocto    = (construtor.getCodModDocto());
				desModDocto    = (construtor.getCodModDocto());
				dataIniVig     = (construtor.getCodModDocto());
				dataFimVig     = (construtor.getCodModDocto());
				
				
				linhas.addElement(codModDocto);
			 }//Fim de for
	    	
	    	JTable table = new JTable();
			JScrollPane scroller = new JScrollPane(table);
			getContentPane().add(scroller, BorderLayout.CENTER);

desde já agradeço quem puder ajudar.

Leia o link ao lado do texto em vermelho na minha assinatura.

Olá vini
fico feliz por ter respondido. Vamos ver se entendi:

No exemplo postado eu estava caminhando para DefaultTableModel é isso? e TableMode por vários motivos é melhor.

Percebi que lá tem alguns exemplos de criar um TableModel, só fico preocupado que pelos exemplos que vi teria que mexer na forma como recupera os dados do DataBase e não queria mudar isso. A menos que tenha pontos negativos.

Hoje utilizo construtores para recuperar os dados do banco. No código postado acima armazeno os dados recuperados em JList. Só queria levar esse JList dados para o JTable.
Não sei se é a melhor forma.

Minhas questões parecem básicas mas é a primeira vez que tento utilizar o JTable e tudo parece um pouco confuso. Vou ver aqueles tópicos com mais calma, queria finalizar isso hoje.
Se tiver alguma dica rápida ficarei agradecido.

Pelo que vi você carrega os dados num List, certo?

Um TableModel diz para o JTable como exibir um List. Não precisaria alterar a carga dos seus dados.

Isso mesmo

tentei fazer isso aqui, mas está dando erro. O lance é como levar essas variáveis para o JTable.

Aqui é meu Select que armazeno em uma lista:

	    if ("Configura Dir".equals(e.getActionCommand()))
		 { //Chama o método createFormDiretorio
		   
	       AuxModDocto dao = new AuxModDocto();
	       
		   List<ConsAuxModDocto> lista = dao.getListaModDocto();
			 
		   //Recupera as informações do modelo documento
			for(ConsAuxModDocto construtor : lista)
			 {
				
				codModDocto.add(construtor.getCodModDocto());
				desModDocto.add(construtor.getCodModDocto());

			 }//Fim de for
		 }
	 }

aqui é meu JTable que está em um construtor:

    	JTable table = new JTable(codModDocto, desModDocto);
		JScrollPane scroller = new JScrollPane(table);
		getContentPane().add(scroller, BorderLayout.CENTER);

Poste seu TableModel.

Se ainda não montou um, volte a ler os tutoriais que indiquei.

Dentro daquele link indicado, achei essa matéria abaixo que é mais próxima do que pretendo fazer.


Vou entende-la e qualquer coisa volto a chama-lo.
Obrigado.

Olá vini
segue anexo Código que consegui desenvolver até aqui.
Criei o TableModel da forma que fui entendendo naquele tutorial, porém estou com dúvida de como chamar o resultado para o JTable.

Estou anexando também minhas classes de conexão para entender a ideia que estou utilizando.

A classe que possui o JTable é FormConsModDocto. A mesma não possui o método main porque chamerei esta por outra classe.

Se você puder ajudar ficarei muito grato.

Seria só fazer o seguinte:

public void actionPerformed(ActionEvent e) {

if ("Configura Dir".equals(e.getActionCommand())) { //Chama o método createFormDiretorio AuxModDocto dao = new AuxModDocto(); List&lt;ConsAuxModDocto&gt; lista = dao.getListaModDocto(); model = new ModeloDoctoTableModel(lista); table.setModel(model); }

Cara estou fechando o tópico, você mais uma vez você deu a uma solução precisa e eficiente.
Puts ajudou muito…

Só para ficar mais tranquilo…
Esse código que enviei para você é a melhor forma de fazer né? ou seja não terei problema de lentidão usando o TableModel dessa forma, correto?

Não. Usando dessa forma você evita duplicação de dados e torna o código bem mais eficiente do que se usasse o terrível DefaultTableModel. Tanto em termos de performance, quanto em termos de uso de memória.

Dessa forma também fica fácil:

  1. Obter valores de campos dos objetos que não estão sendo exibidos na tabela (o que evita consultas desnecessárias ao DAO);
  2. Criar uma tabela editável;
  3. Personalizar o layout da tabela (ajustar editores especiais para as colunas, por exemplo);

Sem falar que o código fica bem menos porco, e não quebra o modelo MVC.