編集DISPOSE_ON_CLOSE を使用することは、私が求めているものではありません。なぜなら、「逆」の問題があるためです。JFrame を閉じても REPL は存続しますが (これは良いことです) 、 REPL の外から起動しても存続します (これは悪いことです)。
Clojure で Swing アプリケーションを作成していますが、REPL ( Emacs ではnrepl ) と REPL の外側 (たとえばlein run
、スタンドアロンの.jarを使用または実行) の両方をテストすると便利です。
Swing アプリケーションを REPL から起動していないときは、デフォルトのクローズ操作を EXIT_ON_CLOSE に設定すると便利です。例えば:
(.setDefaultCloseOperation jframe JFrame/EXIT_ON_CLOSE)
そのため、JFrame の閉じるボタンをクリックして、アプリを終了することができます。
ただし、どうやら(これについては間違っているかもしれませんが、私は物事を見ていないと思います)これはREPLから実行すると問題があります:JFrameの閉じるボタンをクリックするとすぐに、明らかにnreplサーバーを強制終了し、新しいサーバーを再度開く必要がありますnrepl。
nreplと REPL の外側の両方からテストする必要があることを知っていますが、どうすれば問題を解決できますか?
REPL から実行されていることを「検出」し、デフォルトのクローズ操作を終了に設定しないようにする必要がありますか? または?