У меня есть этот код, который отображает диалоговое окно подтверждения для выхода из приложения.Этап скрыт, когда отображается диалог
public class DialogPanels
{
public void initClosemainAppDialog(final Stage primaryStage)
{
primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>()
{
@Override
public void handle(WindowEvent event)
{
event.consume(); // Do nothing on close request
// Dialog Stage init
final Stage dialog = new Stage();
dialog.initModality(Modality.APPLICATION_MODAL);
// Frage - Label
Label label = new Label("Exit from the program");
// Button "Yes"
Button okBtn = new Button("Yes");
okBtn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
//primaryStage.close();
//dialog.close();
//Platform.exit();
System.exit(0);
}
});
// Button "No"
Button cancelBtn = new Button("No");
cancelBtn.setOnAction(new EventHandler<ActionEvent>()
{
@Override
public void handle(ActionEvent event)
{
primaryStage.show();
dialog.close();
}
});
// Layout for the Button
HBox hbox = new HBox();
hbox.setSpacing(10);
hbox.setAlignment(Pos.CENTER);
hbox.getChildren().add(okBtn);
hbox.getChildren().add(cancelBtn);
// Layout for the Label and hBox
VBox vbox = new VBox();
vbox.setAlignment(Pos.CENTER);
vbox.setSpacing(10);
vbox.getChildren().add(label);
vbox.getChildren().add(hbox);
// Stage
Scene scene = new Scene(vbox);
dialog.setScene(scene);
dialog.show();
}
});
}
}
Проблема заключается в том, что при закрытии основного приложения отображается диалоговое окно и основной этап скрыт. Я хочу отобразить диалоговое окно перед основной сценой. Можете ли вы помочь мне исправить это?
UPDATE
Я тестировал этот код, он работает, но когда отображается диалоговое окно MainStage не несет ответственности (замороженный). Как я могу объяснить основную сцену при отображении диалога?
Это не работает должным образом. –
Я пытаюсь помочь вам с закрытием основной стадии. В вашем коде есть много работы (например, используйте 'Platform.exit()'), потребляя событие и так далее. Что * точно * не работает должным образом? –
Диалог отображается за основной сценой. –