I have two FXML pages each with its controller. The main one (homepage.fxml) reads budget items from a database. It has an edit button which opens the secondary FXML file (editBudget.fxml) with its own controller. In the secondary FXML, you can enter new budget values that update the database.
If I update the values and then restart the program the main FXML file opens with the new values but I would like it to update as soon as I press post on the second FXML file.
HomepageController
package homepage;
import datasource.BudgetData;
import datasource.DbConnect;
import java.io.IOException;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import java.net.URL;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
public class HomepageController implements Initializable {
    @FXML
    private Label dateDashboard;
    @FXML
    private Label cashDashboard;
    @FXML
    private Label bankDashboard;
    @FXML
    private Label mobileMoneyDashboard;
    @FXML
    private Label totalAssetsDashboard;
    @FXML
    private Label budgetedDashboard;
    @FXML
    private Label bCoverDashboard;
    @FXML
    private Label budgetCoverperDashboard;
    @FXML
    private DatePicker datepicker;
    @FXML
    private TextField cashfield;
    @FXML
    private TextField mpesafield;
    @FXML
    private TextField bankfield;
    @FXML
    private Button postbutton;
    @FXML
    private MenuItem deleteMenuItem;
    @FXML
    private Label rentBudget;
    @FXML
    private Label deductionsBudget;
    @FXML
    private Label garbageBudget;
    @FXML
    private Label electricityBudget;
    @FXML
    private Label gasBudget;
    @FXML
    private Label entBudget;
    @FXML
    private Label shoppingBudget;
    @FXML
    private Label airtimeBudget;
    @FXML
    private Label tvBudget;
    @FXML
    private Label transportBudget;
    @FXML
    private Label foodBudget;
    @FXML
    private Label budgetTotalSet;
    private ObservableList<BudgetData> budgetDataObservableList;
    DbConnect dbConnect = DbConnect.getInstance();
    @Override
    public void initialize(URL url, ResourceBundle resourceBundle) {
        loadBudgetData();
    }
    @FXML
    void handleEditBudget(ActionEvent event) {
        try {
            AnchorPane parent = (AnchorPane) 
 FXMLLoader.load(getClass().getResource("editBudget.fxml"));
            Stage stage = new Stage();
            stage.setScene(new Scene(parent));
            stage.setTitle("Update Budget");
            stage.setResizable(false);
            stage.show();
        } catch (IOException ex) {
            Logger.getLogger(HomepageController.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("handleEditBudget(): " + ex.getMessage());
        }
    }
    public void loadBudgetData() {
        try {
            Connection connection = dbConnect.getConnection();
            String sqlselect = "SELECT * FROM budget WHERE ROWID = (SELECT max(ROWID) from budget)";
            System.out.println(sqlselect);
            ResultSet resultSet = connection.createStatement().executeQuery(sqlselect);
            budgetDataObservableList = FXCollections.observableArrayList();
            while (resultSet.next()) {
                budgetDataObservableList.add(new BudgetData(resultSet.getString(1),
                        resultSet.getString(2), resultSet.getString(3),
                        resultSet.getString(4), resultSet.getString(5), resultSet.getString(6),
                resultSet.getString(7), resultSet.getString(8), resultSet.getString(9), 
                resultSet.getString(10), resultSet.getString(11)));
            }
            connection.close();
        } catch (SQLException e) {
            System.out.println("loadBudgetData(): " + e.getMessage());
        }
        int IntRent = Integer.parseInt(budgetDataObservableList.get(0).getRent());
        int intDeductions = Integer.parseInt(budgetDataObservableList.get(0).getDeductions());
        int intGarbage = Integer.parseInt(budgetDataObservableList.get(0).getGarbage());
        var intElectricity = Integer.parseInt(budgetDataObservableList.get(0).getElectricity());
        int intGas = Integer.parseInt(budgetDataObservableList.get(0).getGas());
        int intShopping = Integer.parseInt(budgetDataObservableList.get(0).getShopping());
        int intAirtime = Integer.parseInt(budgetDataObservableList.get(0).getAirtime());
        int intTv = Integer.parseInt(budgetDataObservableList.get(0).getTv());
        int intTransport = Integer.parseInt(budgetDataObservableList.get(0).getTransport());
        int intFood = Integer.parseInt(budgetDataObservableList.get(0).getFood());
        int intEntertainment = Integer.parseInt(budgetDataObservableList.get(0).getEntertainment());
        int intTotal = IntRent + intDeductions + intGarbage + intElectricity + intGas + intShopping + intAirtime + intTv + intTransport + intFood + intEntertainment;
        String stringTotal = Integer.toString(intTotal);
        try {
           rentBudget.setText(budgetDataObservableList.get(0).getRent());
           deductionsBudget.setText(budgetDataObservableList.get(0).getDeductions());
           garbageBudget.setText(budgetDataObservableList.get(0).getGarbage());
           electricityBudget.setText(budgetDataObservableList.get(0).getElectricity());
           gasBudget.setText(budgetDataObservableList.get(0).getGas());
           shoppingBudget.setText(budgetDataObservableList.get(0).getShopping());
           airtimeBudget.setText(budgetDataObservableList.get(0).getAirtime());
           tvBudget.setText(budgetDataObservableList.get(0).getTv());
           transportBudget.setText(budgetDataObservableList.get(0).getTransport());
           foodBudget.setText(budgetDataObservableList.get(0).getFood());
           entBudget.setText(budgetDataObservableList.get(0).getEntertainment());
        } catch (Exception e) {
            System.out.println("setcellvalue: " + e.getMessage());
        }
    }
}
editbudgetcontroller
package homepage;
import datasource.DbConnect;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ResourceBundle;
import javafx.beans.binding.Bindings;
import javafx.beans.property.DoubleProperty;
import javafx.beans.property.SimpleDoubleProperty;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Alert;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.util.StringConverter;
import javafx.util.converter.DoubleStringConverter;
public class editBudgetController implements Initializable {
    @FXML
    private TextField editRent;
    @FXML
    private TextField editDeductions;
    @FXML
    private TextField editGarbage;
    @FXML
    private TextField editElectricity;
    @FXML
    private TextField editGas;
    @FXML
    private TextField editShopping;
    @FXML
    private TextField editAirtime;
    @FXML
    private TextField editTv;
    @FXML
    private TextField editTransport;
    @FXML
    private TextField editFood;
    @FXML
    private TextField editEntertainment;
    @FXML
    private Label totalLabel;
    DbConnect dbConnect;
    @FXML
    private HomepageController homepageController;
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        showTotals();
    }
    @FXML
    void handleClearButton() {
        this.editRent.setText(null);
        this.editDeductions.setText(null);
        this.editGarbage.setText(null);
        this.editElectricity.setText(null);
        this.editGas.setText(null);
        this.editShopping.setText(null);
        this.editAirtime.setText(null);
        this.editTv.setText(null);
        this.editTransport.setText(null);
        this.editFood.setText(null);
        this.editEntertainment.setText(null);
    }
    @FXML
    void handlePostButton(ActionEvent event) {
        updateBudget();
        handleClearButton();
    }
    @FXML
    public void showTotals() {
        DoubleProperty rent = new SimpleDoubleProperty();
        DoubleProperty deductions = new SimpleDoubleProperty();
        DoubleProperty garbage = new SimpleDoubleProperty();
        DoubleProperty electricity = new SimpleDoubleProperty();
        DoubleProperty gas = new SimpleDoubleProperty();
        DoubleProperty shopping = new SimpleDoubleProperty();
        DoubleProperty airtime = new SimpleDoubleProperty();
        DoubleProperty tv = new SimpleDoubleProperty();
        DoubleProperty transport = new SimpleDoubleProperty();
        DoubleProperty food = new SimpleDoubleProperty();
        DoubleProperty entertainment = new SimpleDoubleProperty();
        DoubleProperty total = new SimpleDoubleProperty();
        // can also use (add(rent, garbage))
        total.bind(rent.add(deductions.add(garbage.add(electricity.add(gas.add(shopping.add(airtime.add(tv.add(transport.add(food.add(entertainment)))))))))));
        StringConverter<? extends Number> stringConverter = new DoubleStringConverter();
        Bindings.bindBidirectional(editRent.textProperty(), rent, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editDeductions.textProperty(), deductions, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editGarbage.textProperty(), garbage, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editElectricity.textProperty(), electricity, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editGas.textProperty(), gas, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editShopping.textProperty(), shopping, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editAirtime.textProperty(), airtime, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editTv.textProperty(), tv, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editTransport.textProperty(), transport, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editFood.textProperty(), food, (StringConverter<Number>) stringConverter);
        Bindings.bindBidirectional(editEntertainment.textProperty(), entertainment, (StringConverter<Number>) stringConverter);
        // BInd total
        totalLabel.textProperty().bind(total.asString());
    }
    @FXML
    public void updateBudget() {
        String sqlinsert = "INSERT INTO budget(rent, deductions, garbage, electricity, gas, shopping, airtime, tv, transport, food, entertainment) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
        try {
            Connection connection = dbConnect.getConnection();
            PreparedStatement insertPreparedStatement = connection.prepareStatement(sqlinsert);
            insertPreparedStatement.setString(1, this.editRent.getText());
            insertPreparedStatement.setString(2, this.editDeductions.getText());
            insertPreparedStatement.setString(3, this.editGarbage.getText());
            insertPreparedStatement.setString(4, this.editElectricity.getText());
            insertPreparedStatement.setString(5, this.editGas.getText());
            insertPreparedStatement.setString(6, this.editShopping.getText());
            insertPreparedStatement.setString(7, this.editAirtime.getText());
            insertPreparedStatement.setString(8, this.editTv.getText());
            insertPreparedStatement.setString(9, this.editTransport.getText());
            insertPreparedStatement.setString(10, this.editFood.getText());
            insertPreparedStatement.setString(11, this.editEntertainment.getText());
            insertPreparedStatement.execute();
            this.editRent.setText(null);
            this.editDeductions.setText(null);
            this.editGarbage.setText(null);
            this.editElectricity.setText(null);
            this.editGas.setText(null);
            this.editShopping.setText(null);
            this.editAirtime.setText(null);
            this.editTv.setText(null);
            this.editTransport.setText(null);
            this.editFood.setText(null);
            this.editEntertainment.setText(null);
            Alert alert = new Alert(Alert.AlertType.INFORMATION);
            alert.setHeaderText("Success!!");
            alert.showAndWait();
            connection.close();
        } catch (SQLException e) {
            System.out.println("updateBudget() " + e.getMessage());
        }
    }
}
In case you would like to run it github
