Criei uma TableView via SceneBuilder para que ela receba dados dinâmicos, ou seja, terei sempre scripts SQL distintos, cujos dados desejo mostrar na TableView.
Assim, as colunas são criadas conforme a quantidade de campos que detecto no sql.
Isso já está sendo realizado. O problema está no código para popular as linhas da TableView.
Para isso, obtenho um ArrayList, do tipo String, com os dados do resultSet, como são informações dinâmicas,
esse ArrayList recebe cada registro com os campos separados com #. Em seguida, obtenho a
quantidade de campos que terei como colunas e criou as colunas da TableView com os títulos semelhantes
aos nomes dos campos usando o código:
for(int j=0;j<qtdeCampos;j++)
{
TableColumn<String[],String> column = new TableColumn();
column.setText(arrayListCampos.get(j).getNomeCampo());
aTableColumn.add(column);
tableViewResultado.getColumns().add(column);
}
Que funciona perfeitamente.
Em seguida, criei um loop para obter os elementos do ArrayList, denominado
//OBTEM OS DADOS DE aListString inserindo-os em dados[][]
String dados[][] = new String[aListString.size()][qtdeCampos];
for(int i=0;i<aListString.size();i++)
{
String dadosX[]=aListString.get(i).split("#");
for(int k=0;k<dadosX.length;k++)
{
dados[i][k]=dadosX[k];
}
}
onde: dados[][] possui a quantidade de linhas conforme a quantidade de elementos de aListString e a quantidade de colunas conforme a quantidade de campos (qtdeCampos). Até aqui resolvido.
Em seguida, o loop preenche a matriz dados[][] sem problema, cada linha com os seus respectivos campos. Finalmente, efetuo o preenchimento da TableView com: tableViewResultado.getItems().addAll(Arrays.asList(dados));
Sendo que a TableView
está definida como:
@FXML
private TableView<String[]> tableViewResultado;
No entanto, as linhas não são preenchidas com os dados de dados[][], cujas informações ficam corretamente armazenadas nesta matriz.
Onde está o erro?
Grato pela atenção.