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

时间:2017-09-19 21:19:21

标签: java button javafx javafx-8 transparent

所以我有一个包含透明窗口的应用程序。有没有办法让我获得系统关闭按钮并在javafx场景中使用它?我希望实现这样的目标。 enter image description here

注意标签和关闭按钮是如何在同一条线上的?我是否必须手动执行此操作,或者是否有内置方法

提前致谢

2 个答案:

答案 0 :(得分:2)

试试StageStyle.UNIFIED。此功能:

  

使用平台装饰定义舞台样式,并消除客户区和装饰之间的边界。客户区背景与装饰统一。

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

  

这是一个条件功能,用于检查是否支持{... 3}}。如果平台不支持该功能,则此样式会降级为Platform.isSupported(javafx.application.ConditionalFeature)

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

我有一段时间没有使用过UNIFED阶段,但是我在平台上的回忆我正在尝试它们,即使它们消除了标题和窗体之间的视觉描绘,你也无法画出关闭和其他控件所在的垂直区域,仅在其下方的窗体区域。因此,我不确定UNIFIED阶段是否允许您在与窗口关闭按钮相同的垂直区域中设置选项卡,例如您在问题中的图像中。在目标平台上尝试一下,看看它实际上是什么功能,以及它是否为您提供了有用的东西。由于该功能取决于平台,因此行为可能因平台而异,因此您的体验可能与我的回忆不同。

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

答案 1 :(得分:0)

此时似乎唯一有保证的方法是手动执行此操作。感谢大家的帮助。我可能会创建一个类,您可以将其添加到执行此操作的代码中。