IDE: Netbeans Visual PackA 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 nomee 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
Boxe02 tu Natação
Judô
Fisiculturismoagradeco qualquer ajuda
Table-Conjunto de valores em uma UNICA celula
1 Resposta
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.

