Atualizar TableView

Olá Galera,

estou criando um pequena aplicação para estudo do JavaFX criei uma tela principal que a partir de um click em um botão chama uma tela onde tenho uma lista exibida em uma TableView , nessa mesma tela tenho um botão cadastrar que chama uma outra tela para inserção dos dados para novo cadastro , o que quero é uma maneira de após a inserção no novo dado a TableView seja atualizada.

segue os códigos

Método initialize da tela onde está a TableView

public void initialize(URL url, ResourceBundle rb) {
    initTableColumn();

    //BOTÃO PARA CADASTRAR NOVO VEICULO
    btnNovoVeic.setOnAction((ActionEvent event) -> {
        try {
            new FrmCadVeicApp().start(new Stage());
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, ex, "Erro ao abrir tela", JOptionPane.ERROR_MESSAGE);
        }
    });

Método que inicializa a lista e um que popula

private void initTableColumn() {

    tbVeiculo.setItems(FXCollections.observableArrayList(carregaLista()));
    columnCodVeic.setCellValueFactory(new PropertyValueFactory<>("idVeiculo"));
    columnMarcaVeic.setCellValueFactory(new PropertyValueFactory<>("marcaVeiculo"));
    columnModeloVeic.setCellValueFactory(new PropertyValueFactory<>("modeloVeiculo"));
    columnPlacaVeic.setCellValueFactory(new PropertyValueFactory<>("placaVeiculo"));
    columnPropVeic.setCellValueFactory(new PropertyValueFactory<>("nomeDonoVeiculo"));

}

public List<Veiculo> carregaLista() {
    controller = new VeiculoController();
    lista = controller.listar();
    return lista;
}
é aqui que estou com o problema esse método initialize está no outro form onde os dados são digitados para serem exibidos na tabela que está no form anterior a este gostária de saber se existe alguma forma de enviar uma instância da tableview de um form para outro estou usando o JavaFX Scene Builder com Netbeans. public void initialize(URL url, ResourceBundle rb) {
    btnCadVeic.setOnAction((ActionEvent event) -> {
        veiculo = new Veiculo();
        controller = new VeiculoController();
        
        veiculo.setAnoVeiculo(Integer.valueOf(txtAno.getText()));
        veiculo.setCorVeiculo(txtCor.getText());
        veiculo.setCpfDonoVeiculo(txtNomeDono.getText());
        veiculo.setKmVeiculo(Double.valueOf(txtKm.getText()));
        veiculo.setPlacaVeiculo(txtPlaca.getText());
        veiculo.setMarcaVeiculo(txtMarca.getText());
        veiculo.setModeloVeiculo(txtModelo.getText());
        veiculo.setUfVeiculo("Bahia");
        veiculo.setNomeDonoVeiculo(txtNomeDono.getText());
        try{
            controller.salvar(veiculo);
            JOptionPane.showMessageDialog(null, "Veiculo cadastrado com sucesso!", "Informação :", JOptionPane.INFORMATION_MESSAGE);
            limpaTxt();
            FrmCadVeiculo.getStage().close();
        }catch(Exception e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null , event , "Erro ao cadastrar veiculo" , JOptionPane.ERROR_MESSAGE);
        }
        
    });
}

Sim enviar a instancia é possível, apenas crie um método q receba a TableView ex:

public void pegarReferencia(TableView tabela){
  this.tabela = tabela;
} 

Agora recomendo ao adicionar na tabela, nao adicione um FXCollections diretamente, cria um Objeto ex:

ObservableList<Veiculo> veiculos = FXCollections.observableArrayList();

é no lugar de usar uma List, basta apenas alterar para ObservableList.
porque a sua tabela vai ficar observando essa lista, se algo alterar nessa lista a tabela vai se alterar pq é "Observável"
vc poderia fazer de uma forma bem mais legal, já q é estudo dê uma olhadinha aqui q vc vai entender bem legal o javaFX, utilizando o Scene Builder como auxilio!
Tutorial JavaFX 8
Obs: em vez de usar JoptionPane use o Dialogs do javaFX olha aqui um tutorial JavaFx Dialogs

Entao a quando eu substituir o List pelo ObservableList a TableView ja vai atualizar automatico apos uma inclusao ou exclusao de dados?

Sim pq sua TableView vai ficar de olho na sua Lista

ObservableList<Veiculo> veiculos = FXCollections.observableArrayList();
tbVeiculo.setItems(veiculos);

Blz valeu vou testar ja ja obrigado

Sim, observe bem como vc vai implementar, para que venha funcionar no seu código, eu utilizo o padrão MVC q nem no tutorial q te passei, pra mim funciona tranquilo :slight_smile: