- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个可以启动其他应用程序的应用程序,类似于扩展坞。问题是,如果我正在启动的应用程序 (JFrame
) 有 EXIT_ON_CLOSE
,它也会关闭我的主应用程序。
我无法控制我正在启动的应用程序。也就是说,我不能期望应用程序有良好的行为并使用 DISPOSE_ON_CLOSE
.
我该怎么做才能避免这种情况?我已经尝试过使用线程,但没有成功。我还尝试将主应用程序线程放在守护进程中,但也不走运。
我试过用自定义 SecurityManager
覆盖 checkExit
方法。问题是现在连主应用程序都无法退出。此外,它不会“工作”,因为使用 EXIT_ON_CLOSE
作为其默认关闭操作的应用程序将抛出异常并且不会执行(因为 Swing 检查安全管理器的退出 - System.checkExit() ), 启动失败:(.
最佳答案
如果你只想关闭你看到的框架,它应该是DISPOSE_ON_CLOSE
编辑:
尝试拦截 EXIT_ON_CLOSE 事件。
frame.getGlassPane() or frame.getRootPane()
可能会有用。
此外,如果您有权执行其他应用程序的方法,您可以再次调用 setDefaultCloseOperation
将其设置为 DISPOSE_ON_CLOSE
关于java - 如何避免JFrame EXIT_ON_CLOSE操作退出整个应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827892/
在我遇到的几乎所有代码示例中,从 JFrame 派生的类中方法 setDefaultCloseOperation 的参数是一些常量,例如 JFrame.EXIT_ON_CLOSE . 在这种情况下,由
这个问题已经有答案了: Why JFrame redefine the "EXIT_ON_CLOSE" which it inherits from interface "WindowConstant
这个问题已经存在: my JFrame has a error "Cannot instantiate the type JFrame" and no research has come with a
我有一个游戏,我试图拦截关闭事件并将用户返回到主菜单。我已经使用 DO_NOTHING_ON_CLOSE 解决了一半问题,但问题是我无法将常规功能返回到菜单屏幕。 您可能知道,问题是,如果 DO_NO
我被教导要添加它以始终将它添加到 jframe 的运行方法中,但与不使用它相比它不会改变任何东西。 我想知道的是,当你把它去掉时会发生什么? 谢谢 @Override public void run(
我有一个小问题。 我的 Java 应用程序拥有一些 native 资源。我想在退出应用程序之前释放这些资源。因此我写了一个 WindowListener在 windowClosed 中释放这些资源事件
目前我有一个实时 Activity 的 while 循环运行,它做了我想要的我唯一的问题是关闭框架(退出应用程序)而 while 循环仍然处于 Activity 状态。 frame.setDefaul
我一直在搜索关于这个话题的很多东西,但对任何答案都没有满意,所以最后在这里问了一个问题:)。无论如何,来自这个类似的 post很明显dispose()不会终止所有进程并且仍然保留在 task mana
我不太喜欢JFrame.EXIT_ON_CLOSE选项。如果有一个线程正在写入文件或下载某些内容,则该选项将在完成之前被终止。相反,我试图通过销毁 GUI 窗口来优雅地终止程序: /**
对于 EXIT_ON_CLOSE 和所有这些参数来说,使用枚举而不是最终变量不是更好吗? 最佳答案 我认为这是一个向后兼容的类型问题。 Window 早在 Java 1.5 首次引入枚举之前就已经存在
我注意到,如果设置了 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),关闭框架将结束其在任务管理器中的进程,但如果我实现 WindowListener 并
两者有什么区别。我正在阅读一篇关于您应该始终使用的文章 ( http://www.javalobby.org/java/forums/t17933) System.exit(0); 目前我在用 JFr
我有一个简单的 GUI: public class MyGUI extends JFrame{ public MyGUI(){ run();
假设Runtime.getRuntime().addShutdownHook(new Thread()设置正确,当Java应用程序窗口(JFrame)时如何调用ShutdownHook线程>) 关闭(
WindowConstants 定义如下: public interface WindowConstants { public static final int DO_NOTHING_ON_C
我正在使用 swing 创建一个 IDE,它可以编译和运行用户的程序。如果用户编写swing程序并运行该程序内有frame.setDefaultCloseOperation(JFrame.EXIT_O
我是一名优秀的程序员,十分优秀!