Доброго
Тут я спрашивал как разбить на части контролы
Как разбить на несколько контролов код в 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);
}
}