Exemplo de Table Model!

2 respostas
paulinhohd

E ae galera beleza?

Alguém tem um código exemplo sobre manipulação de Table Model, com funções de adicionar e remover linhas?

Pois já analisei os tutoriais aqui do Guj, e o do Bruno Lima é ótimo, embora ele criou um método getTabela(), só que não está implementado no tutorial, e ela é crucial para o funcionamento.

Já mandei e-mail para ele, mas não obtive resposta, e to precisando meio urgente.

Se alguém puder colaborar!

Valeu!!!
Fui… 8)

2 Respostas

R
Vou dar um exemplo, mas sem função de adicionar e remover linhas. Abaixo tenho o TableModelPadrao. Depois tenho o TableModelCliente, que herda do padrão. Tendo já o TableModel construído, basta criar o JTable. Se quiser uma função como essa abaixo, é só passar como parâmetro uma objeto derivado de TableModelPadrao.
private void construirTabela(TableModelPadrao tableModelPadrao) {
        tabela = new JTable(tableModelPadrao);
        tabela.setPreferredSize(new Dimension(600,480));
	tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	painelTabela = new JScrollPane(tabela);        
    }
import java.util.List;

import javax.swing.table.AbstractTableModel;

public abstract class TableModelPadrao extends AbstractTableModel {
	
	protected String[] colunas;
	protected List linhas;	
	
	public TableModelPadrao(List linhas) {
		setColunas(criarColunas());
		this.linhas = linhas; 
	}
	
	protected abstract String[] criarColunas();
	
	public int getRowCount() {
		if (linhas != null) {
			return linhas.size();
		} else {
			return 0;
		}
	}	
	
	public int getColumnCount() {
		return colunas.length;
	}	
	
	public boolean isCellEditable(int row, int col) {
		return false;
    }	
	
    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }		
	
	public String getColumnName(int col){
		return colunas[col];
	}

	public String[] getColunas() {
		return colunas;
	}
	
	public void setColunas(String[] colunas) {
		this.colunas = colunas;
	}
	
	public List getLinhas() {
		return linhas;
	}

	public void setLinhas(List linhas) {
		this.linhas = linhas;
		fireTableDataChanged();
	}

	
		
}
import java.util.List;

import src.model.Cliente;

public class TableModelCliente extends TableModelPadrao {

	public TableModelCliente(List linhas) {
		super(linhas);
		// TODO Auto-generated constructor stub
	}

	@Override
	protected String[] criarColunas() {
		return new String[] {"Nome"};
	}

	public Object getValueAt(int rowIndex, int columnIndex) {
		Cliente cliente = (Cliente) linhas.get(rowIndex);
		switch (columnIndex) {
		case 0: 
			return cliente.getNome();
		default: 
			return null;
		}
	}


}
paulinhohd

Valeu Ronaldo, farei uns testes aqui!

Fui… 8)

Criado 27 de abril de 2005
Ultima resposta 27 de abr. de 2005
Respostas 2
Participantes 2