Вы загружаете сцену дважды:
loader.load();
...
AnchorPane pane = FXMLLoader.load(getClass().getResource("Screen3_Scada.fxml"));
getbtnPLC
не является экземпляром контроллера, который создается при загрузке сцены, которую вы добавляете в существующую.
Вы должны использовать загруженный результат, который является результатом вызова loader.load();
:
if (pressed_button == btnscadalogin) {
if (loginLoad.validateSCADA(username, password)) {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("Screen3_Scada.fxml"));
try {
AnchorPane pane = loader.load();
RootPane.getChildren().setAll(pane);
Screen3_Scada_Controller getbtnPLC = loader.getController();
getbtnPLC.getBtngotoPLC().setDisable(true);
} catch (IOException ex) {
System.err.println("Error in method GotoScreen2 class FXML_Screen1_loginController");
}
}
Я рекомендую использовать разные методы для обработки ActionEvent
s из разных источников. Обычно это лучшая альтернатива, чем проверка того, какой из нескольких узлов является источником события.