Passar dados de uma list para jtable

Amigos,

estou tentando passar os dados do meu objeto List(é uma consulta a um banco de dados) para o meu jtable, problema é que quando adiciono a linha, ele me retorna nao os dados do List, e sim o codigo de cada linha(Exemplo: [Ljava.lang.Object;@3126d4). Qual metodo eu uso pra capturar os dados de cada linha do List?? Seuqe a parte do meu codigo q tá dando pau… na linha vermelha q eu acho q ta o problema…

[Ljava.lang.Object;@3126d4

public inicioJF() {
List lista;
List list;
int i = 0;
Consultas consulta = new Consultas();
SimpleDateFormat dt = new SimpleDateFormat(“MMM-yy”);
lista = consulta.consConta();

initComponents();

JTable tab = this.tabela;
DefaultTableModel model = (DefaultTableModel) tab.getModel();

for (i=0;i<=lista.size()-1;i++){
[color=red]model.addRow(new Object[]{lista.get(i)});[/color]

}

Qual o tipo de dados que está armazenado na List?
Se for Object, ele vai trazer desta forma que você relatou.
Tente fazer cast para String.

Quantas colunas tem sua tabela?

Suponha que temos uma tabela com 5 colunas e um (ArrayList<Aluno> lista) com varios campos (codigo, nome, telefone, curso, cidade)
voçê tera que fazer assim

for(Aluno aluno: lista)
addRow(new Object[]{aluno.getAlu_codigo(), aluno.getAlu_nome(), aluno.getAlu_fone(), aluno.getAlu_curso(), aluno.getAlu_cidade()});

você tem que passar os dados que tem em cada objeto armazenado na lista(lista.get(i))

da erro no cast…ele diz q o metodo addrow so aceita objetos

Ex:

lista.addRow( new Object[]{ lista.get(i).getNome()} );

NÃO use DefaultTableModel, siga os links na minha assinatura para aprender como se livrar dele, com um TableModel proprio, voce vai passar diretamente sua lista de dados sem ter que fazer essa gambiarra de ficar montando vetores de valores.

diz q nao é possivel chamar os metodos get em matrizes… ta tenso isso…2 dias na lama…rs

Com um model proprio voce faria simplesmente o seguinte:

tableModel.addAll(lista);

E pronto, sua JTable já tem os dados que precisa.

vou ler man…valew pelo help…

[quote=Marky.Vasconcelos]Com um model proprio voce faria simplesmente o seguinte:

tableModel.addAll(lista);

E pronto, sua JTable já tem os dados que precisa.[/quote]

Recomendo tb, muito pratico!!!.

Tenho minha TableModel

como chamar a consulta no evento do botao?

segue o codigo:

´public class TableModelComputadores extends AbstractTableModel {   
    
	
	private List<ComputadoresBean> comp;

	public TableModelComputadores() {
		// no construtor, instanciamos o List
		comp = new ArrayList<ComputadoresBean>();
	}
	/**
	 * Criamos um construtor de conveniencia para ja popular a lista.
	 * 
	 * @param lista
	 *            a lista de clientes a ser adicionada.
	 */
	public TableModelComputadores(List<ComputadoresBean> lista) {
		this();
		comp.addAll(lista);
	}

	@Override
	public Class<?> getColumnClass(int coluna) {
		// todas as colunas representam uma String
		return String.class;
	}

	@Override
	public int getColumnCount() {
		
		return 5;
	}

	@Override
	public String getColumnName(int coluna) {
		// vamos retornar o nome de cada coluna
		switch (coluna) {
		case 0:
			return "ID"; 
		case 1:
			return "Data de CADASTRO"; 
		case 2:
			return "Equipamento"; 
                case 3:
			return "Nome"; 
                case 4:
			return "Serial"; 
		default:
			return ""; 
		}
	}

	@Override
	public int getRowCount() {
		
		return comp.size();
	}

	@Override
	public Object getValueAt(int linha, int coluna) {
		
		ComputadoresBean cb = comp.get(linha);
		
		switch (coluna) {
		case 0:
			return cb.getId(); // retornamos o ID
		case 1:
			return cb.getData(); // retornamos a Data
		case 2:
			return cb.getTipo(); // tipo
		case 3:
			return cb.getNome(); // nome
                case 4:
			return cb.getSerial(); // serial
                default:
			return null; // isso nunca deve ocorrer, pois temos so 5 colunas
		}
	}

	@Override
	public boolean isCellEditable(int rowIndex, int columnIndex) {
		
		return true;
	}

	@Override
	public void setValueAt(Object valor, int linha, int coluna) {
		
		ComputadoresBean cb = comp.get(linha);
		switch (coluna) {
		case 0:
			cb.setId(Integer.parseInt(valor.toString())); // mudamos o ID
			break;
		case 1:
			cb.setData(valor.toString()); // mudar
			break;
		case 2:
			cb.setTipo(valor.toString()); //mudar ....
			break;
                case 3:
			cb.setNome(valor.toString()); // mudar....
			break;
                case 4:
			cb.setSerial(valor.toString()); // mudar....
			break;
		}
		// � importante notificar os listeners a cada alteracao
		fireTableDataChanged();
	}

	
	public void adiciona(ComputadoresBean cb) {
		comp.add(cb);
		
		fireTableRowsInserted(comp.size() - 1, comp.size() - 1);
	}

	
	public void remove(int indice) {
		comp.remove(indice);
		fireTableRowsDeleted(indice, indice);
	}

	
	public int getIndice(ComputadoresBean cb) {
		return comp.indexOf(cb);
	}

	public void adicionaLista(List<ComputadoresBean> lista) {
		int i = comp.size();
		comp.addAll(lista);
		fireTableRowsInserted(i, i + lista.size());
	}

	
	public void limpaLista() {
		int i = comp.size();
		comp.clear();
		fireTableRowsDeleted(0, i - 1);
	}

}

Tenho uma JTable desenhada em minha aplicação, quero que ao clicar no botao preencha a JTable com os dados da TableModel.

ninguem?

Kra, pesquise sobre “BeansBiding”,
vc vincula direto o jTable a um List

eu geralmente uso e acho fino d+