【发布时间】:2013-04-01 17:46:30
【问题描述】:
EDIT 使用 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 运行的,然后不将默认关闭操作设置为退出?还是?
【问题讨论】: