4. Диалогови прозорци (Alert)

4.1 Същност

Диалоговият прозорец представлява помощен прозорец, използван за комуникация с потребителя. Той може да показва информация, предупреждения или да изисква потвърждение за дадено действие.

В JavaFX диалоговите прозорци могат да бъдат реализирани по два основни начина:

  • чрез готовия клас Alert;
  • чрез създаване на отделен прозорец (Stage), често описан с FXML.

4.2 Видове диалогови прозорци

  • INFORMATION – показва информационно съобщение;
  • WARNING – сигнализира за потенциален проблем;
  • ERROR – показва грешка;
  • CONFIRMATION – изисква избор от потребителя.

4.3 Основен пример и структура

Alert alert = new Alert(Alert.AlertType.INFORMATION); 
// определя типа на диалога (INFORMATION → бутон OK)

alert.setTitle("Информация"); 
// задава заглавието на прозореца

alert.setHeaderText("Заглавие"); 
// задава заглавен текст

alert.setContentText("Това е информационно съобщение."); 
// задава съдържание

alert.showAndWait(); 
// показва и изчаква

Метода showAndWait връща като резултат информация кой бутон от Alert прозореца е бил натиснат. Резултата е от тип Optional<ButtonType> Optional е клас в Java (пакет java.util), който се използва за представяне на стойност, която може да съществува или да липсва.

Optional е контейнер, който:

съдържа стойност (T) → ако има или е празен → ако няма стойност

Използва се, за да избегне NullPointerException.

Методи за проверка за стойност

opt.isPresent()
opt.isEmpty()

Метод за взимане на стойност

opt.get()

4.4 Бутони

Тип Бутони
INFORMATION OK
WARNING OK
ERROR OK
CONFIRMATION OK, Cancel
    private Optional<ButtonType> showAlert(Alert.AlertType type, String title, String header, String content) {
        Alert alert = new Alert(type);
        alert.setTitle(title);
        alert.setHeaderText(header);
        alert.setContentText(content);
        return alert.showAndWait();
    }
    Optional<ButtonType> result = showAlert(Alert.AlertType.INFORMATION, "Информация", "Редактиране", "Успешно изпълнена корекция");
    if (result.isPresent() && result.get() == ButtonType.OK) {
        handleCancel(actionEvent);
    }


This site uses Just the Docs, a documentation theme for Jekyll.