0

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

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

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

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

4

4 回答 4

4
System.exit(0);
于 2010-04-08T14:49:28.953 回答
1

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

 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

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

于 2010-04-08T14:55:50.870 回答
0

试试Window.dispose()

于 2010-04-08T14:53:46.280 回答
0

您必须完成所有线程才能停止您的应用程序。仅仅隐藏 GUI 不会完成 AWT 线程。查看您使用的 GUI 类的 API,例如 dispose-methods。

于 2010-04-08T14:51:33.890 回答