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;
}
}