编辑使用 DISPOSE_ON_CLOSE 不是我所追求的,因为它们我遇到了“逆”问题:当我关闭 JFrame 时,REPL 保持活动状态(这很好),但是当从 REPL 外部启动时它也保持活动状态(这很糟糕)。
我正在 Clojure 中编写一个 Swing 应用程序,我发现从 REPL( Emacs 下的nrepl)和 REPL 外部(例如通过使用lein run
或运行独立的.jar)测试东西都很方便。
当我不从 REPL 启动我的 Swing 应用程序时,我发现将默认关闭操作设置为 EXIT_ON_CLOSE 很方便。例如:
(.setDefaultCloseOperation jframe JFrame/EXIT_ON_CLOSE)
所以我可以点击 JFrame 的关闭按钮并完成我的应用程序。
但是显然(我可能对此有误,但我认为我没有看到任何东西)从 REPL 运行时这是有问题的:一旦我单击 JFrame 的关闭按钮,我显然会杀死nrepl服务器并必须重新打开一个新的nrepl _
知道我需要从nrepl和任何 REPL 外部进行测试,我该如何解决我的问题?
我是否应该“检测到”我从 REPL 运行,然后不将默认关闭操作设置为退出?或者?