Arrays.asList. Só fica a ultima linha carregada

Pessoal,

estou estudando um exemplo q peguei na web pra carga (dados) em uma TableView. Alterei para pegar os
dados em uma tabela sql e não em uma lista fixa.
Resumindo: preciso carregar uma List com Arrays.asList lendo os dados a serem carregados em uma Tabela MySQL. No código abaixo, não há erro de compilação ou execução, mas apenas a ultima linha (row) é carregada na TableView
e demosntrada na Tela.

Vcs conseguem me ajudar?


public class ClsJfxConTab extends Application
{
public static Connection wConecta;

@Override
public void start(Stage primaryStage)
{
// Instanciando e chamando Classe/Metodo para conexão com MySQL
ClsSqlCon clssqlcon = new ClsSqlCon();
wConecta = clssqlcon.Conecta();

   int    wPessoaRet = 0, wChaIni = 0;
   String wSqlSelRes  =  " ";

    // Instanciando Classe do Select
   ClsJfxSqlSel clsjfxsqlsel = new ClsJfxSqlSel();

   // Criando a List
   List pessoas = null;

   while (wPessoaRet        == 0)  
   {
        // Chamando método do Select. wChaIni é a ultima chave (key) lida ou zero se for a 1a vez
        wSqlSelRes             = clsjfxsqlsel.mtdJfxSqlSel(wConecta, wChaIni);

        // "quebrando" o Resultado (String wSqlSelRes) nos 3 diferentes dados retornados
        String[] wSqlSelResBlo = wSqlSelRes.split(Pattern.quote("|"));

       // Verificando o 1o dado retornado que é o status do Select (sem teve linha lida)
        if (Integer.parseInt (wSqlSelResBlo[0])  == 0)
        {
           // Chamando Pessoa informando os dados a serem carregados
           pessoas = Arrays.asList
                (new Pessoa(wSqlSelResBlo[2], Integer.parseInt (wSqlSelResBlo[1]), "JoaoNinguem@gmail.com"));

           // Salvando a Chave lida (Select) para ler a linha seguinte no próximo Select
           wChaIni             = Integer.parseInt (wSqlSelResBlo[1]);

           wPessoaRet          = 0;
        }
        else
        {
           wPessoaRet          = 1;
        }
     }

  TableView tabela        = new TableView<>();
  TableColumn colunaNome  = new TableColumn<>("Nome");
  TableColumn colunaIdade = new TableColumn<>("Idade");
  TableColumn colunaEmail = new TableColumn<>("E-mail");

  colunaNome.setCellValueFactory (new PropertyValueFactory<>("nome"));
  colunaIdade.setCellValueFactory(new PropertyValueFactory<>("idade"));
  colunaEmail.setCellValueFactory(new PropertyValueFactory<>("email"));

  tabela.setItems(FXCollections.observableArrayList(pessoas));
  tabela.getColumns().addAll(colunaNome, colunaIdade, colunaEmail);

  primaryStage.setScene(new Scene(tabela));
  primaryStage.setWidth(800);  //primaryStage.setWidth(250);
  primaryStage.setHeight(600); //primaryStage.setHeight(300);
  primaryStage.setTitle("Tabelas no JavaFX");
  primaryStage.show();

}

public static class Pessoa
{
private String nome;
private int idade;
private String email;

  public Pessoa(String nome, int idade, String email) 
  {
     this.nome = nome;
     this.idade = idade;
     this.email = email;
  }

  public String getNome() 
  {
     return nome;
  }

  public void setNome(String nome) 
  {
     this.nome = nome;
  }

  public int getIdade() 
  {
     return idade;
  }

  public void setIdade(int idade) 
  {
     this.idade = idade;
  }

  public String getEmail() 
  {
     return email;
  }

  public void setEmail(String email) 
  {
     this.email = email;
  }

}

Na linha onde está:

   // Criando a List
   List pessoas = null;

troque por:

   // Criando a List
   List pessoas = new ArrayList();

e onde está:

   pessoas = Arrays.asList
                (new Pessoa(wSqlSelResBlo[2], Integer.parseInt (wSqlSelResBlo[1]), "JoaoNinguem@gmail.com"));

troque por:

   pessoas.add(new Pessoa(wSqlSelResBlo[2], Integer.parseInt (wSqlSelResBlo[1]), "JoaoNinguem@gmail.com"));

diego12, excelente. Resolveu meu problema. Grato.