Scala - gui应用程序不会退出

时间:2013-05-08 17:31:46

标签: scala user-interface intellij-idea

我正在尝试在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代码...其次,当我关闭窗口时,应用程序仍在运行,我必须从intellij控制台停止它。可能导致这种情况的任何想法?

1 个答案:

答案 0 :(得分:0)

关闭时JFrame的默认行为是HIDE_ON_CLOSE,它具体说明了它的含义。这就是你的事件没有被解雇的原因:因为窗口并没有真正关闭。您可以通过以下方式更改框架的默认关闭行为来处理此问题:

frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)

您还可以使用windowClosing更改活动。见java doc:

  

当用户尝试从窗口关闭窗口时调用   系统菜单。

或者你可以简单地摆脱你的听众并添加:

frame.setDefaultCloseOperation(EXIT_ON_CLOSE)