有没有办法让系统关闭按钮作为 javafx 按钮?

Is there a way to get the systems close button as a javafx button?

所以我有一个包含透明 windows 的应用程序。有没有办法让我获得系统关闭按钮并在 javafx 场景中使用它?我期待实现这样的目标。

注意选项卡和关闭按钮是如何位于同一行的吗?我必须手动执行此操作,还是有内置方法

提前致谢

尝试StageStyle.UNIFIED。此功能:

Defines a Stage style with platform decorations and eliminates the border between client area and decorations. The client area background is unified with the decorations.

请注意,并非所有系统都支持它:

This is a conditional feature, to check if it is supported see Platform.isSupported(javafx.application.ConditionalFeature). If the feature is not supported by the platform, this style downgrades to StageStyle.DECORATED.

此外,根据 OS、UNIFIED 样式实现和您的要求,应用程序中 UNIFIED 阶段的结果可能是您想要的,也可能不是您想要的。但是,它可能是 JavaFX 框架本机实现的最接近的东西。


我已经有一段时间没有使用 UNIFED 阶段了,但根据我在平台上的回忆,我正在尝试使用它们,尽管它们消除了 [=37] 的标题和 body 之间的视觉划分=],你不能在关闭和其他控件所在的垂直区域绘制,只能在其下方的window body区域绘制。因此,我不确定 UNIFIED 阶段是否允许您在与 window 关闭按钮相同的垂直区域中设置选项卡,例如您在问题中的图片中。在您的目标平台上尝试一下,看看实际的功能是什么,以及它是否为您提供了一些有用的东西。由于该功能依赖于平台,行为可能因平台而异,因此您的体验可能与我的记忆不同。


另一种方法是在 JavaFX 中呈现关闭按钮,而不是通过 OS windowing 系统功能。这样做时,按钮的样式可能不完全符合您的 OS 标准,但您将完全控制渲染和功能。有关此选项的更多信息,请参阅:

目前看来唯一有保证的方法是手动执行。感谢大家的帮助。我可能会制作一个 class,您可以将其添加到执行此操作的代码中。