ArrayList no JTable?

7 respostas
arthurthiago

Como eu posso colocar um ArrayList em uma JTable?

Tow rachando a cuca e tow com uns problemas…
Estou tentando transformar primeiro para um array e depois passar pro JTable…

Mas não tem como fazer um caminho direto? Colocar o ArrayList?

7 Respostas

fenrir

Tem sim…crie o seu próprio TableModel!

Dê uma olhada na classe AbstractTableModel.

_Renatu

aqui no guj tem um tutorial legal sobre JTable, em duas partes:

http://www.guj.com.br/java.tutorial.artigo.140.1.guj

http://www.guj.com.br/java.tutorial.artigo.147.1.guj

Pra voce vai ser mais interessante a segunda parte, acho…

bzy

http://www.guj.com.br/java.tutorial.artigo.183.1.guj

http://guj.com.br/posts/list/52054.java

:smiley:

arthurthiago

Ai galera... eu fiz como estava no tutorial... só que tah rolando um problema...
Ele só mostra as linhas que eu passei... as colunas não! Nas colunas fica A, B, C, D, E, F....

Vou colocar minhas classe de modelo de tabela:

package br.com.caep.imp;

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

/**
 *
 * @author Nobrega
 */
public class ModeloDeTabela extends AbstractTableModel{
    
    /** Cria um novo modelo de Tabela.
     */
    public ModeloDeTabela(ArrayList tlinhas, String[] tcolunas) {
        linhas = tlinhas;
        colunas = tcolunas;
    }

    /**
     * Retorna o numero de colunas no modelo.
     * @see javax.swing.table.TableModel#getColumnCount()
     */
    public int getColumnCount() {
        return colunas.length;
    }

    /**
     * Retorna o numero de linhas existentes no modelo
     * @see javax.swing.table.TableModel#getRowCount()
     */
    public int getRowCount() {
        return linhas.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 [])linhas.get(rowIndex);
        // Retorna o objeto que esta na coluna
        return linha[columnIndex];
    } 

    private ArrayList linhas = null;
    private String[] colunas = null;

}

e eu chamo o construtor da classe corretamente:

ModeloDeTabela(ArrayList, String[])

alguem tem alguma ideia sobre o que pode tah acontencendo?

bzy

Não vi direito mas acho que ta faltando o método:

public String getColumnName(int col) {
		return coluna[col];
	}

Veja se você implementou todos os métodos corretamente.

arthurthiago

Era isso mesmo cara!! vlw!

Mas ai… quais são os métodos que eu tenho que implementar?

eu implementei os seguintes:

public Object getValueAt(int rowIndex, int columnIndex)

public String getColumnName(int col)

public int getRowCount()

public int getColumnCount()

Falta mais algum?

Guerr

Se você está trabalhando com JTable sugiro você dar uma olhada no framework SwingBean. Ele tem um Table Model que trabalha com List e muito mais! Vale a pena dar uma olhada:

http://swingbean.sourceforge.net

Criado 17 de fevereiro de 2007
Ultima resposta 20 de fev. de 2007
Respostas 7
Participantes 5