javafx - JavaFX 2.0:结束阶段(窗口)

标签 javafx stage

我正在用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/

相关文章:

actionscript-3 - AS3如何设置初始阶段大小

javascript - Flash : Coming back from another tab in browser, Flash 可以监听某种返回选项卡事件吗?

dialog - Libgdx - 如何让对话框淡出而不是整个舞台?

java - 无法在 JavaFX 组合框中转换对象

java - 这是最小化绑定(bind)失效的有效方法吗?

光标位置上的 JavaFX 中心 View

javafx - 监听 FXML 中定义的 TextField 的变化

azure - Snowflake - 创建阶段 - 使用 Azure 的动态 url 模式

java - 舞台中额外的顶部空间是否包含在场景的大小中?

java - 使用目录路径创建新类型 "File"对象时出现无效 URL/非法参数异常