1

Scala/IntelliJ で非常に単純な GUI アプリを実行しようとしています。

def main(args: Array[String]) {

    val frame = new JFrame()
    frame.setSize(900, 700)
    frame.setVisible(true)

    //THis is probably not necessary
    frame.addWindowListener(new WindowAdapter {
      override def windowClosed(e: WindowEvent) {
        System.exit(0)
      }
    })

  }

まず、ウィンドウを閉じるときにwindowAdapterコードが呼び出されません... 2番目に、ウィンドウを閉じてもアプリがまだ実行されているため、intellijコンソールから停止する必要があります。これを引き起こしている可能性のあるアイデアはありますか?

4

1 に答える 1

0

閉じるときの JFrame のデフォルトの動作は HIDE_ON_CLOSE であり、具体的にはその内容を実行します。そのため、イベントが発生していません。ウィンドウが実際には閉じられていないためです。フレームのデフォルトの終了動作を次のように変更することで、これに対処できます。

frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)

windowClosing でイベントを変更することもできます。Java ドキュメントを参照してください。

ユーザーがウィンドウのシステム メニューからウィンドウを閉じようとすると呼び出されます。

または、単にリスナーを削除して追加することもできます:

frame.setDefaultCloseOperation(EXIT_ON_CLOSE)
于 2013-05-09T01:19:22.710 に答える