【问题标题】:Make popups appear before forceful quit JavaFX在强制退出 JavaFX 之前出现弹出窗口
【发布时间】:2017-09-25 04:13:48
【问题描述】:

所以我一直在研究用于练习 javaFX 的基本文本编辑器。 我想这样做,以便当我使用任务管理器(在 Mac 和 Windows 上)或任何类似的东西强制退出时,会出现一个框,询问您是否要保存。我已经正常工作了,但没有强制退出。我一直在尝试关闭挂钩,我想知道是否可以在那里做一些事情来使它工作。

来自不同线程的Platform.exit(); 不起作用:(

例子

import javafx.application.Application;
import javafx.stage.Stage;


public class num1 extends Application{
public static void main(String[]args) {
    launch(args);
}

@Override
public void start(Stage mainStage) throws Exception {
    mainStage.setOnCloseRequest(e -> {
        System.out.print("QUIT");
    });
    mainStage.show();
}
}

使用mac上的强制退出或windows上的任务管理器退出此操作不会触发该操作

提前致谢。

【问题讨论】:

  • 我不确定您是否可以中断强制退出。如果您使用本机应用程序尝试此操作,它们也会在没有提示的情况下关闭 - 我尝试使用 word 并且它也消失了。

标签: java javafx javafx-8 forceclose


【解决方案1】:

我想这就是你要找的。

        stage.setOnCloseRequest(e->{  //stage is your Stage object
            myPopupFunction(); // your popup function
            e.consume(); // consume the event to not propagate further
        });

【讨论】:

  • 不。那只是软退出。不强制退出
  • 也许我不明白您指的是什么,但我很确定右键单击->关闭或 alt+F4 会触发此操作,并且使用该事件不会关闭应用程序。您是否 100% 认为这不是您所需要的?
  • 是的。我将用代码 sn-p 更新这个问题
  • 哦。好的,明白了。是的,你是对的,不会被触发。不知道如何解决您的问题...
  • 当您发现问题时,请发布您的解决方案。我也很好奇^_^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多