Table-Conjunto de valores em uma UNICA celula

1 resposta
V

venomtotal:
IDE: Netbeans Visual Pack

A dúvida: Caso meu objeto tenha uma propriedade que é um conjunto(ex: um array), como exibir seus valores?

Ex:
Criei o Objeto Pessoa com propriedades:´
int id
String nome

e criei uma ArrayList de Pessoa para usar o componente ObjectListDataProvider

A tabela ficou assim:

O problema é quando acrescento ao objeto a propriedade “esportes” que é um String[]

Fica assim:

A intenção era a coluna eportes ficar desse jeito:

A intenção era a coluna eportes ficar desse jeito:

ID NOME ESPORTES

01 eu Atletismo
Boxe

02 tu Natação
Judô
Fisiculturismo

agradeco qualquer ajuda

1 Resposta

R

olá,

é o seguinte:

na hora de exibir o valor na tabela, ele exibe o retorno do método toString(), que no caso de um array vai ser o toString() da classe Object.

o toString de Object exibe o nome qualificado da classe seguido do endereço de memória do objeto. Por isso aparece algo do tipo Ljava.lang.String.@18bea70

Uma solução é a seguinte:

ao invés de vc usar String[] esportes, você pode criar uma classe ArrayEsportes que tem um atributo String[] esportes. Nessa classe, você sobrescreveria o método toString() para percorrer esse array exibindo os esportes (por exemplo, cada um separado por vírgula). E na sua classe Pessoa, ao invés de ter String[] esportes você teria ArrayEsportes esportes.

no final, vc teria algo como:

public class ArrayEsportes{

   private String[] esportes;

   public String[] getEsportes(){
      return this.esportes;
   }

   public String toString(){
      retorno = "";
      for(int i = 0 ; i < esportes.length ; i++){
         retorno += this.esportes[i];
      }

      return retorno;
   }
}

e na sua classe Pessoa, ao invés de String[] esportes, vocês teria:

public class Pessoa(){

   private ArrayEsportes esportes;
}

na classe ArrayEsportes tem um método getEsportes que retorna os esportes como um array de String, para você manipulá-lo, inserindo, removendo, consultando itens (embora uma melhor opção fosse você escrever os métoris insert, remove e get na própria classe ArrayEsportes).

Espero ter ajudado.

Criado 16 de maio de 2007
Ultima resposta 17 de mai. de 2007
Respostas 1
Participantes 2