Método de TableModel

6 respostas
Yago_Ernandes

Eu estou criando meu próprio TableModel como sugerido aqui no fórum, o meu método de adição de linha é este:

public void addFuncionarios(Object[] funcionario) {
		linhas.add(funcionario);

		int ultimoIndice = getRowCount() - 1;

		fireTableRowsInserted(ultimoIndice, ultimoIndice);
}

Mas ele ta dando esse erro na linha 2 :

no suitable method found for add(java.lang.Object[]) method java.util.List.add(int,TableModel.Funcionario) is not applicable (actual and formal argument lists differ in length) method java.util.List.add(TableModel.Funcionario) is not applicable (actual argument java.lang.Object[] cannot be converted to TableModel.Funcionario by method invocation conversion)

No que eu estou errando?

6 Respostas

Yago_Ernandes

Alguém?

E
public void addFuncionarios(Object[] funcionario) {  
        linhas.add(funcionario);
  1. Qual a declaração do membro “linhas”?
  2. addFuncionarios não deveria receber um parâmetro do tipo Funcionario?
Yago_Ernandes

Ah é! Esqueci de colocar esses detalhes...

private List<Funcionario> linhas;

e se eu colocar pra receber o parametro funcionario, a aplicação da erro. Nesse trecho:

tabelaModelo.addFuncionarios(new Funcionario[]{
                        db.resultset.getString("datpont").substring(8,10),
                        db.resultset.getString("entpont"),
                        db.resultset.getString("saipont"),
                        Funcionario.getTempoServico()
                        
                    });
Yago_Ernandes

Ajuda ai galera, ainda não resolvi…

E

Qual a declaração da classe Funcionario?

ViniGodoy

Deveria ser assim:

public void add(Funcionario funcionario) {  
            linhas.add(funcionario);        
            int ultimoIndice = getRowCount() - 1;        
            fireTableRowsInserted(ultimoIndice, ultimoIndice);  
    }

Se quiser fazer um método para lista:

public void addFuncionarios(Funcionario ... funcionario) {  
            int primeiroIndice = getRowCount();
            for (Funcionario f : funcionarios)
                linhas.add(funcionario);                
            int ultimoIndice = getRowCount()-1;  
      
            fireTableRowsInserted(primeiroIndice, ultimoIndice);  
    }
Criado 17 de julho de 2012
Ultima resposta 19 de jul. de 2012
Respostas 6
Participantes 3