我该如何停止申请?

时间:2010-04-08 14:47:14

标签: java multithreading user-interface terminate

我有一个主线程,我使用invokeLater启动一个窗口。我从命令行运行我的应用程序。因此,当应用程序运行时,我看到窗口,我的命令行被应用程序“阻止”。

我可以通过关闭窗口(因此命令行被解除阻塞)或在命令行中键入Ctrl-C来停止应用程序(因此窗口消失)。

我希望能够通过单击应用程序窗口中的按钮来停止应用程序。我使用了setVisible(false)。但通过这种方式,我只能部分地实现目标。我的窗口确实消失但命令行仍然被阻止。因此,该软件仍在运行。

好吧,我认为这是因为其他一些线程仍在运行。但是如何轻松地关闭所有这些线程(就像我通过手动关闭应用程序的窗口一样)。

4 个答案:

答案 0 :(得分:4)

System.exit(0);

答案 1 :(得分:1)

如果它是你正在显示的JFrame,你可以告诉它在框架关闭时退出应用程序 - 默认是隐藏框架:

 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

如果用户关闭窗口(经常右上角[x]按钮),这将退出应用程序,此外你可以有一个退出按钮,其事件处理程序使用myFrame.dispose();关闭窗口

答案 2 :(得分:0)

您必须完成所有线程才能停止申请。只是隐藏GUI将无法完成AWT-Thread。查看您使用的GUI类的API,如dispose-methods。

答案 3 :(得分:0)