Это просто, если вы используете 2 .fxml файла с собственными контроллерами
в этом случае создайте новый файл класса, а именно 'AllControllers'
у вас есть два 2 контроллера, а именно ControllerWindow1 и ControllerWindow2
public class AllControllers {
private static ControllerWindow1 control1;
private static ControllerWindow2 control2;
public static ControllerWindow1 getControl1() {
return control1;
}
public static void setControl1(ControllerWindow1 control1) {
Controlls.control1 = control1;
}
public static ControllerWindow2 getControl2() {
return control2;
}
public static void setControl2(ControllerWindow2 control2) {
Controlls.control2 = control2;
}
}
Вы должны инициализировать каждый контроллер следующим образом
public class ControllerWindow1 implements Initializable{
@FXML
public Label mylabel;
@Override
public void initialize(URL location, ResourceBundle resources) {
AllControllers.setControl1(this);
}
}
Теперь вы можете получить доступ к вашему контроллеру из любого класса. Просто используйте
AllControllers.getControl1().mylabel.setText("hello");