Como deixar mais dinâmico o addRow

3 respostas
D

Bom dia,

Como faço para deixar mais flexível a adição de linhas no meu JTable, estou tentando fazer algo no sentido abaixo.

// Matriz com os dados para ser inseridos na tabela
        String d[][] = pes.getDados();
        
        //contador auxiliar
        int a=1;
        
        //for para ir até não encontrar dados
        for(int cont=1;!d[cont][a].equals("");cont++)
        {  
            //objeto para ser inserido
            Object obj[] = new Object[cont];
            
            //for para preencher todas as colunas
            for(int b=a;a<pes.getNroColum();b++)
            {
                //populando o objeto
                obj[cont]=d[cont][b];
              
            }
            
            //adicionando a linha
            model.addRow(obj[cont]);
            
            //incrementando contador a
            a++;
        }

3 Respostas

marcoslogan

de que tipo é a variável pes?

marcoslogan

Analisando melhor o teu código,

Acho que tem alguma coisa errada com o teu segundo for.

Não sei se ficou faltando alguma coisa lá.

//Primeiro for beleza não tem nada de errado.
for(int cont=1;!d[cont][a].equals("");cont++)  
{    
    //objeto para ser inserido  
    Object obj[] = new Object[cont];  
      
     //Agora esse segundo.
    //for para preencher todas as colunas  
    for(int b=a;a<pes.getNroColum();b++)  
    {  

       //aqui você cria uma variável de iteração chamada b que recebe o valor de a que nesse momento é 1. Depois compara a que é 1 com o número de colunas, e depois incrementa b.
        //populando o objeto  
        obj[cont]=d[cont][b];  //Aqui você popula o seu array de objetos com a matriz de String.
        //Aqui a minha dúvida é a seguinte:
        //A meu ver esse segundo for se torna um loop infinito pois a variável a somente vai ser incrementada após o término desse for, ou seja a sempre vai ser menor do que o número de colunas, correto? o mais correto não seria colocar em vez de a < pes.getNroColum colocasse assim: b < pes.getNroColum? pelo menos sairia desse for. Senão colocasse aqui, mas colocasse dentro do próprio for alguma condição de parada.
    }  
      
    //adicionando a linha  
    model.addRow(obj[cont]);  //Aqui você adiciona a array de objetos à linha do modelo da sua tabela.
      
    //incrementando contador a  
    a++;  //Aqui você incrementa a variável a.
}

Bom não sei se estou equivocado. E também não sei se o código está todo aí.

D

Desculpe mas o problema é que não sei como ir adicionando a um objeto colunas para depois adicionar esse objeto na linha da jtable.

Quando ao objeto pes é uma classe que tem as informações instaçiada, tais como numero de colunas, colunas da jtable, dados e idselecionado.

Minha finalidade com essa situação é adicionar ao instanciar a classe pes e chamar o form padrão para todas as pesquisas, mas para isso preciso saber como montar essa pesquisa dinamicamente.

Criado 22 de setembro de 2012
Ultima resposta 23 de set. de 2012
Respostas 3
Participantes 2