Я пытаюсь создать программу управления запасами, и мне нужно открыть диалоговое окно подтверждения, когда пользователь нажимает кнопку отмены. Все примеры кажутся довольно простыми, однако мое предупреждение не открывается.
AddPartController.java
(Я обещаю, что это не там, где находятся операторы импорта)
import java.io.IOException;
import java.net.URL;
import java.util.Optional;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
@FXML
private Button addPartCancelBtn;
@FXML
void addPartCancelBtnHandler(ActionEvent event) throws IOException {
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Cancel Add Part");
alert.setHeaderText("This part will not be added");
alert.setContentText("Are you ok with this?");
Optional<ButtonType> result = alert.showAndWait();
if(result.isPresent() && result.get() == ButtonType.OK) {
Stage stage;
Parent root;
stage = (Stage) addPartCancelBtn.getScene().getWindow();
FXMLLoader loader = new FXMLLoader(getClass().getResource("Main.fxml"));
root = loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
System.out.println("OK PRESSED");
} else {
Stage stage;
Parent root;
stage = (Stage) addPartCancelBtn.getScene().getWindow();
FXMLLoader loader = new FXMLLoader(getClass().getResource("AddPart.fxml"));
root = loader.load();
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
System.out.println("Errror");
}
}
Кто-нибудь может увидеть проблему здесь?