javaFX Stage 可以同时是 StageStyle.UTILITY 和 StageStyle.TRANSPARENT?

Posted

技术标签:

【中文标题】javaFX Stage 可以同时是 StageStyle.UTILITY 和 StageStyle.TRANSPARENT?【英文标题】:A javaFX Stage could be both StageStyle.UTILITY and StageStyle.TRANSPARENT? 【发布时间】:2013-03-08 07:15:08 【问题描述】:

我的意思是当使用stageStyle.UTILITY的舞台时,我不想显示“纯白色背景”而是透明背景。

我需要一个不在windows任务栏下方显示的stage(stageStyle.UTILITY可以满足),我需要一个透明背景(StageStyle.TRANSPARENT可以满足),这样我就可以定义我的关闭按钮样式了阶段。

但是 stageStyle.UTILITY 或 StageStyle.TRANSPARENT 只符合我的一个要求似乎很奇怪。

谢谢。

【问题讨论】:

Is it possible to have a transparent utility stage in javafx?的可能重复 ***.com/a/47859152/5932611 这个答案有一个非常好的方法! 【参考方案1】:

已经好了! 同时调用 dialogStage.initOwner(parentStage) http://docs.oracle.com/javafx/2/api/javafx/stage/Stage.html#initOwner%28javafx.stage.Window%29

【讨论】:

我看到当parentStage被最小化或最大化时,childStage也会被最小化和最大化。你能分享一下解决这个问题的方法吗?谢谢!【参考方案2】:

这样吗?

对背景有影响

线索代码

dialog.initModality(Modality.WINDOW_MODAL);

【讨论】:

【参考方案3】:

在 javafx 中尚不可能,但 javafx 与 swing 兼容,因此您可以使用 swing 使 swing 等效于透明实用程序阶段。有关一些示例,请参阅here。我希望这会有所帮助。

【讨论】:

【参考方案4】:
final Stage stage = new Stage(StageStyle.TRANSPARENT);
Group rootGroup = new Group();
Scene scene = new Scene(rootGroup, 339, 319, Color.TRANSPARENT);
stage.setScene(scene);
stage.centerOnScreen();
stage.show();

【讨论】:

谢谢你,杰克逊,但你可能弄错了。 StageStyle.TRANSPARENT 不能让我的弹窗舞台不显示在下面的windows任务栏上,只有stageStyle.UTILITY可以满足。所以我需要一个同时具有 stageStyle.UTILITY 和透明背景(没有默认关闭按钮)的弹出舞台。 已经可以了。同时调用 dialogStage.initOwner(parentStage) docs.oracle.com/javafx/2/api/javafx/stage/…【参考方案5】:

看这里 How can I remove my javafx program from the taskbar

只需添加(将其移出视线)

primaryStage.setX(Double.MAX_VALUE);
primaryStage.setY(Double.MAX_VALUE);

替换

mainStage.initStyle(StageStyle.UNDECORATED);

mainStage.initStyle(StageStyle.TRANSPARENT);

【讨论】:

以上是关于javaFX Stage 可以同时是 StageStyle.UTILITY 和 StageStyle.TRANSPARENT?的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab持续集成-(.gitlab-ci.yml)

JavaFX: Stage顶部状态栏

20-Jenkins-Pipeline-顺序执行和并行

在 JavaFX 的舞台上设置图标

JavaFX - 实现管理多个Stage窗口切换及源码解析

如何在 JavaFX 中获取 Stage 的窗口句柄 (hWnd)?