我正在尝试在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控制台停止它。可能导致这种情况的任何想法?
答案 0 :(得分:0)
关闭时JFrame的默认行为是HIDE_ON_CLOSE,它具体说明了它的含义。这就是你的事件没有被解雇的原因:因为窗口并没有真正关闭。您可以通过以下方式更改框架的默认关闭行为来处理此问题:
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE)
您还可以使用windowClosing更改活动。见java doc:
当用户尝试从窗口关闭窗口时调用 系统菜单。
或者你可以简单地摆脱你的听众并添加:
frame.setDefaultCloseOperation(EXIT_ON_CLOSE)