开发者

How can I stop my application?

I have the main thread from which I start a window using invokeLater. I run my application from command line. So, when application is running I see the window and my command line is "blocked" by the application.

I can stop the application either by closing the window (as a result the comm开发者_如何转开发and line is unblocked) or by typing Ctrl-C in the command line (as a result the window disappear).

I wanted to be able to stop the application by clicking on a button in the window of the application. I used setVisible(false) for that. But in this way I can achieve the goal only partially. My window really disappear but the command line is still blocked. So, the software is still running.

Well, I assume it's because some other threads are still running. But how can I easily close all these threads (like I do by closing the window of the application manually).


System.exit(0);


If it's a JFrame you're showing, you can tell it to exit the app when the frame is closed - the default is to just hide the frame:

 myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

This will exit the app if the user closes the window (top right [x] button often) , in addition you could have a Quit button whose event handler closes the window using myFrame.dispose();


You must finish all threads in order to stop your application. Just hiding the GUI will not finish the AWT-Thread. Have a look at the API of the GUI classes you use like the dispose-methods.


Try Window.dispose()

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜