gpt4 book ai didi

java - 项目不会停止在 NetBeans 上运行

转载 作者:行者123 更新时间:2023-12-02 00:19:07 25 4
gpt4 key购买 nike

我开始编写一个小程序来更多地了解 Java,并尝试手动设计我的布局,而不是始终使用 NetBeans。

事情是,当我运行我的项目并关闭它时,它不会停止在 NetBeans 中运行,因此每次我重新运行它都会创建另一个运行。通过搜索和查看我使用 NetBeans 创建的另一个 GUI,我想添加

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

可以解决这个问题,但我想我错了。

有人可以解释一下我应该做什么吗?

这是我的程序的 SSCCE:http://pastebin.com/QhKpwdDw

提前非常感谢您!

最佳答案

您可能想看看这个问题:How to close a Java Swing application from the code ,因为它涉及一般关闭应用程序以及如何确保它完全终止。

但是为了快速回答您的问题,有几个选择。


选项 1

由于您要在类中扩展 JFrame,因此您可以使用 EXIT_ON_CLOSE退出。

setDefaultCloseOperation(EXIT_ON_CLOSE);

注意: EXIT_ON_CLOSE 退出应用程序中的所有 JFrame,而不仅仅是它所应用的那个。


选项 2

这很可能不是您想要的答案,但是DISPOSE_ON_CLOSE将仅关闭您正在应用它的 JFrame

如果您打开了多个JFrame,或者您有任何其他线程,它们将继续运行,程序不会结束。但如果您只有一个 Thread 和一个 JFrame,这将关闭应用程序。

setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);


我的偏好

我会选择选项 1,但与其他人不同。它直接与 JFrame 绑定(bind),而不依赖于 WindowConstants,这使得事情变得更干净、更可靠。但更重要的是,它会关闭所有窗口,而不仅仅是您应用它的窗口。

尽管看起来您只有一个窗口,但您的程序中的其他地方可能还有 NetBeans 抛出的其他内部线程

为了确保所有内容都关闭,您需要使用EXIT_ON_CLOSE


额外信息

有关 DISPOSE_ON_CLOSEEXIT_ON_CLOSE 差异的讨论:http://www.coderanch.com/t/340183/GUI/java/DISPOSE-CLOSE-vs-EXIT-CLOSE

关于JFrame EXIT_ON_CLOSE的文档:http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JFrame.html#EXIT_ON_CLOSE

有关 DISPOSE_ON_CLOSE 和其他 WindowConstants 的文档: http://docs.oracle.com/javase/1.5.0/docs/api/javax/swing/WindowConstants.html#DISPOSE_ON_CLOSE

关于java - 项目不会停止在 NetBeans 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11367296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com