Где находится сообщение по умолчанию для ParticleApplication?

Я создаю Gluon ParticleApplication, и мне нужно изменить сообщение о выходе и / или процедуру выхода, где это или что мне следует переопределить? Спасибо за ответ.

1 ответ

Решение

Текущая реализация использует Alert диалоговое окно для отображения сообщения всякий раз, когда есть событие выхода (из панели инструментов или действий меню) или из события запроса закрытия.

Хотя это диалоговое окно не настраивается, существует showCloseConfirmation свойство, которое позволяет вам отменить это диалоговое окно, чтобы вы могли молча выйти из приложения или предоставить свой собственный диалог.

Например, на основе проекта единственного рабочего стола по умолчанию, созданного с помощью плагина Gluon, мы можем изменить exit действие под MenuActions:

@Inject
ParticleApplication app;

@ActionProxy(text="Exit", accelerator="alt+F4")
private void exit() {
    // disable built-in dialog
    app.setShowCloseConfirmation(false);
    // create a custom dialog
    Alert dialog = new Alert(Alert.AlertType.CONFIRMATION, "Custom exit Message");
    Optional<ButtonType> result = dialog.showAndWait();
    if(result.isPresent() && result.get().equals(ButtonType.OK)) {
        app.exit();
    }
}

Кроме того, вам нужно будет обрабатывать события закрытого запроса в основном классе, потребляя эти события и вызывая ваш exit действие:

@Override
public void postInit(Scene scene) {
    ...
    scene.windowProperty().addListener(new InvalidationListener() {
        @Override
        public void invalidated(Observable observable) {
            scene.getWindow().setOnCloseRequest(e -> {
                e.consume();
                action("exit").handle(new ActionEvent());
            });

            scene.windowProperty().removeListener(this);
        }
    });
}
Другие вопросы по тегам