我正在用JavaFX 2.0开发一个应用程序。在主窗口中,我正在使用一些设置启动一个新窗口。调整完设置后,我想按“保存更改”之类的按钮。
我想要此按钮来保存更改并关闭窗口。
关闭是指杀死它,而不是将其放在后台或设置可见性。
我已经读过一个关于Stage.close()的方法
http://docs.oracle.com/javafx/2.0/api/javafx/stage/Stage.html
如您所见,它类似于方法Hide(),该方法仅隐藏窗口,而不关闭窗口。
问:有人知道任何方法或有一些代码可以帮助我关闭窗口吗?
所有帮助将不胜感激。
谢谢!
最佳答案
您链接的文档指出stage.close()
:
Closes this Stage. This call is equivalent to hide().
因为
hide()
等效于close()
,并且close()
关闭了舞台,所以hide()
也关闭了舞台。当应用程序中的所有阶段都隐藏(或关闭,如果您愿意,因为它是同一回事)时,应用程序将退出。我知道这很令人困惑,但这只是JavaFX团队决定命名和实现操作的方式。
如果需要,可以使用Platform.setImplicitExit(boolean)方法关闭在关闭或隐藏最后一个窗口时退出应用程序的默认行为。
Then it comes to the question, How can we hide the stage without closing it completely?
我不认为
hide()
或等效的close()
方法将“完全”关闭该阶段,就像释放与该窗口相关的所有资源一样(只要您在某个地方保留对该阶段的引用)。我认为它只是为了使舞台不可见。您可以在调用show()
之后调用close()
,并且该窗口可能会再次变为可见状态(我没有尝试过)。但是,如果要这样做,则调用hide()
而不是close()
会更直观。我的猜测是,如果您不再保留对应用程序中某个阶段的任何引用,并且该阶段处于关闭或隐藏状态,那么每当JVM的算法决定对其进行垃圾收集时,JVM可能会释放与该阶段相关的所有资源(同样,我没有请不要对此进行测试,否则可能无法正常工作)。
关于javafx - JavaFX 2.0:结束阶段(窗口),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212366/