Есть два окна, допустим при нажатии кнопки в окне1 вызывается окно2 и в контроллер окна2 должен передаться объект1 из окна1 После неких операций, и нажатии кнопки в окне2 нужно вернуть true или false
Каким образом это можно(лучше) реализовать?
Пример: Пользователь нажимает кнопку, выходит окно1, где после неких операций он нажимает "ок" и в зависимости от результата (true или false) идут дальнейшие действия в окне1
Вам необходимо определить соответствующие поле во втором контроллере, для передачи ему объекта.
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.Dialog;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Callback;
import java.util.Optional;
public class App extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
RootController root = new RootController(); // or fxml load
primaryStage.setScene(new Scene(root, 100, 100));
primaryStage.show();
}
private static class RootController extends StackPane {
private CustomObject customObject = new CustomObject();
// or fxml initialization
public RootController() {
Button bShowDialog = new Button("Show");
bShowDialog.setOnAction(this::show);
getChildren().add(bShowDialog);
}
private void show(ActionEvent event) {
DialogController content = new DialogController(); // or fxml load
content.customObject = customObject;
Dialog<Boolean> dialog = new Dialog<>();
dialog.getDialogPane().setContent(content);
dialog.setResultConverter(content.resultConverter);
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
Optional<Boolean> result = dialog.showAndWait();
if ( result.isPresent() ) {
System.out.println("Result = " + result.get());
System.out.println("New value = " + customObject.i);
}
}
}
private static class DialogController extends VBox {
CustomObject customObject;
// or fxml initialization
public DialogController() {
Button bInc = new Button("Inc");
bInc.setOnAction(this::inc);
Button bDec = new Button("Dec");
bDec.setOnAction(this::dec);
getChildren().addAll(bInc, bDec);
}
private void inc(ActionEvent event) { customObject.i++; }
private void dec(ActionEvent event) { customObject.i--; }
Callback<ButtonType, Boolean> resultConverter = param -> param == ButtonType.OK && customObject.i > 0;
}
private static class CustomObject {
int i;
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите пожалуйста пример вычисления на java Child key derivation (CKD) functions для биткоинаОписание алгоритма здесь https://github
Добрый деньЗанялся изучением Spring MVC и задался соответствующим вопросом: какая технология в нынешнее время наиболее востребована и наиболее...
Доброго времени суток :) Есть блок, в нём с самого начала два инпутаЕсть кнопка, которая добавляет в блок ещё инпут, т
Нужна такая фича как отправить себе на WhatsAppДопустим человек просматривает страницу товара на моем сайте и ему понравилась какая-то вещь,...