Very new to JavaFX and lacking a bit of knowledge in the way controllers work but here it goes.
My problem is easy. I need to update a Label on the screen during runtime.
This problem has been addressed on this site before:
Also, are these links describing the same thing but done differently?
But my program is a little different.
The flow of the program is as follows:
The Main Stage has several Objects that extends Pane with a Label inside. These Objects can be right clicked which opens a context menu. An option in the context menu opens a new window with RadioButtons. 
The idea is to select one of the RadioButtons and use that string to rewrite the Label back on the Main Stage.
However my code only works once, the first time. All subsequent changes are not shown on the screen. I can even output the Label that was changed to the Console and it shows the correct value, but never updates the Label on the Stage.
Class that has the Label on the screen:
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
public class CoursePane extends Pane {
    private Label courseID;
    public CoursePane(Label courseID) {
        this.courseID = courseID;
    }
    public String getCourseID() {
        return courseID.getText();
    }
    public Label getCourseLabel() {
        return courseID;
    }
    public void setCourseID(String ID) {
        courseID.setText(ID);   
    }
}
The Context Menu Class that invokes the menu:
public class CourseContext {
    static String fxmlfile;
    private static Object paneSrc; //the CoursePane that was clicked on
    public static void start(CoursePane pane, String courseSrc) {
        //Context Menu
        ContextMenu contextMenu = new ContextMenu();
        //MenuItems
        MenuItem item4 = new MenuItem("option");
        //add items to context menu
        contextMenu.getItems().addAll(item4);
        pane.addEventHandler(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                if (event.isSecondaryButtonDown()) {
                    //the coursePane that was right clicked on
                    paneSrc = event.getSource().toString();
                    contextMenu.show(pane, event.getScreenX(), event.getScreenY());
                    item4.setOnAction(new EventHandler<ActionEvent>() {
                        @Override
                        public void handle(ActionEvent event) {
                            try {
                                FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("my fxml file for the radio Buttons"));
                                Parent root= loader.load();
                                ElectiveController electiveController = loader.getController();
                                electiveController.start( "pass the coursePane that was right clicked on" );
                                Scene scene = new Scene(root);
                                Stage stage = new Stage();
                                stage.setScene(scene);
                                stage.setTitle("Set Elective");
                                stage.show();
                            }
                            catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    });
                }
            }
        });
    }
}
And finally, the class that has the value that Label is supposed to be set to:
public class ElectiveController {
    @FXML
    private Button setButton;
    private RadioButton chk;
    //the pane that was right clicked on
    private static String courseSource;
    public void start(Course courseSrc) { //courseSrc: the Pane you right clicked on
        courseSource = courseSrc.getCoursenamenumber().getValue();
    }//end start
    //sets the course pane with the selected elective radio button
    @FXML
    private void setElective() {
        chk = (RadioButton)humElectiveGroup.getSelectedToggle();
        //This is supposed to set the value for the coursePane Object to show on the screen!
        MainStage.getCoursePanes().get(courseSource).setCourseID(chk.getText());
        Stage stage = (Stage) setButton.getScene().getWindow();
        stage.close();
    }
}
I have looked into dependency injection, tried binding and passing parameters but getting the same results. I know this is straight forward, any help is appreciated! Thanks.
 
    