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