@Neonoviiwolf
Flutter developer

Как из одного класса, подключенного к fxml передать данные в другой, подключенный fxml?

Доброго
Тут я спрашивал как разбить на части контролы Как разбить на несколько контролов код в javafx?
Теперь вот возник вопрос, как мне передать данные из одного контрола в другой. т.е.
public class Main extends Application implements Initializable

и
public class RadioButtons implements Initializable {

что-то выполняется в Main и мне нужно передать данные в RadioButtons, а как?

пояснения:
у меня много разных контролов, в связи с чем решил их разделить и в sample.fxml просто ставить их
<fx:include source="radio_button.fxml" fx:id="radioButtonLayout"></fx:include>

в самом fxml "radio_button", я прописал
<AnchorPane xmlns="http://javafx.com/javafx"
            id="radio_buttons_pane"
            xmlns:fx="http://javafx.com/fxml"
            fx:controller="controller.RadioButtons"
            prefHeight="400.0" prefWidth="600.0">
.....
</AnchorPane>

создал класс
public class RadioButtons implements Initializable {

    public RadioButtons() {
    }
 @FXML
    RadioButton radio1, radio2;
.....
}

в sample.fxml осталась Button "addDB", при её нажатии, я должен сделать запись в бд, если все поля заполнены.
Я сейчас так же щупаю RxJava и хочу, чтобы всё это происходило через неё, хотя на на ответ не влияет, т.к. сейчас нужно просто передать ссылку подписчика
public class Main extends Application implements Initializable {
    @FXML
    Button  addProduct;
    @Override
    public void initialize(URL location, ResourceBundle resources) {
        Observable<String> observable;
        observable = Observable.just("test");

        addProduct.setOnAction(event -> {
            new RadioButtons().addDB(observable); //тут я не могу писать new, т.к. класс уже существует, при старте программы

        });
}

public class RadioButtons implements Initializable {
    public void addDB(Observable observable) {
        Observer<String> server = new Observer<String>() {
            @Override
            public void onSubscribe(Disposable disposable) {

            }

            @Override
            public void onNext(String s) {
                System.out.print(s);
                eventBus();

            }

            @Override
            public void onError(Throwable throwable) {

            }

            @Override
            public void onComplete() {

            }
        };
        observable.subscribe(server);
    }
}
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
@Neonoviiwolf Автор вопроса
Flutter developer
не вижу решения для моего случая, мне нужно получить ссылку на class
public class RadioButtons implements Initializable
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ссылку на вложенный контроллер получите так и в обработчике кнопки кнопки используйте именно эту ссылку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы