当舞台处于全屏模式时 JavaFX 弹出窗口隐藏

2024-04-21

I am trying to popup a dialog over my fullscreen primary stage in javafx. When I create my popup, it is unexpectedly hidden behind my fullscreen primary stage until the stage is removed from fullscreen mode (via ESC). If I make my primary stage maximized and undecorated instead of fullscreen, then my popup will appear on top of the primary stage as expected.

我是否遗漏了全屏模式与最大化和未修饰模式有何不同?我是否使用全屏模式不当?

我在 CentOS 6.5 上使用 Java 版本 1.8.0_20 和 Gnome。

这是我的 SSCCE:

import javafx.application.*;
import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.*;

public class TestApplication extends Application {
    private Stage primaryStage;

    public static void main(String[] arguments) {
        launch(arguments);
    }

    public void start(Stage stage) {
        this.primaryStage = stage;

        // Create a fullscreen primary stage.    
        primaryStage.setTitle("Main Stage");
        primaryStage.setScene(new Scene(createRoot()));
        primaryStage.setFullScreen(true);

        primaryStage.show();
    }       

    private Parent createRoot() {
        Button button = new Button("Show popup");
        button.setOnAction((event) -> showPopup());

        return button;
    }

    private void showPopup() {
        // Create a popup that should be on top of the primary stage.
        Stage popupStage = new Stage();

        popupStage.setScene(new Scene(createPopupRoot()));
        popupStage.setTitle("Popup Stage");
        popupStage.initModality(Modality.WINDOW_MODAL);
        popupStage.initOwner(primaryStage);

        popupStage.show();
    }

    private Parent createPopupRoot() {
        return new Label("This is a popup!");
    }
}

在使用java版本“1.8.0_40”重复这个问题后,我终于找到了如何解决这个问题!

popupStage.initStyle(StageStyle.UTILITY);

Stage.initStyle(StageStyle) -- JavaFX 8 http://docs.oracle.com/javase/8/javafx/api/javafx/stage/Stage.html#initStyle-javafx.stage.StageStyle-

给弹出窗口一种风格StageStyle.UTILITY即使在弹出窗口之外单击,似乎也会将弹出窗口保留在全屏窗口前面。

我在使用新版本时看到了同样的问题Alertjava 1.8.0_40 中的类,并将样式设置为StageStyle.UTILITY也修复了这个问题(Dialog.initStyle(StageStyle) -- JavaFX 8 http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/Dialog.html#initStyle-javafx.stage.StageStyle-).

我不知道为什么这有效。

边注:

看起来像是删除了对popupStage.initOwner(...)允许弹出窗口出现在全屏应用程序上方,但在弹出窗口之外单击会导致弹出窗口消失。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当舞台处于全屏模式时 JavaFX 弹出窗口隐藏 的相关文章

  • Kivy:弹出窗口只能有一个小部件作为内容

    我在 kv 文件中使用弹出窗口时遇到问题 我知道弹出窗口只能有一个小部件作为其内容 但是如果我只将 GridLayout 作为包含标签和按钮的子项传递 这不应该起作用吗 这是我的Python代码 import kivy LabelB fro
  • Android 6.0如何隐藏导航栏?

    我有以下代码 getWindow getDecorView setSystemUiVisibility View SYSTEM UI FLAG LAYOUT STABLE View SYSTEM UI FLAG LAYOUT HIDE NA
  • HTML5 气泡消息

    输入字段有一个新的 HTML5 属性required提交表单且字段为空时会弹出气泡消息 有什么办法可以弹出带有不同文本的相同气泡吗 我想将它用于不同的验证 不仅仅是它是否为空 以下是 Chrome 中此气泡 弹出窗口 的屏幕截图 HTML5
  • 如何使用 MFC 禁用顶级菜单项并使其变灰

    我有一个对话框应用程序 我希望在对话框顶部有可单击的菜单项 这些项目不显示下拉菜单 但实际上运行关联的命令 我通过在对话框属性中设置 Popup False 并分配消息 ID 来做到这一点 但我的问题是 当项目可点击没有意义时 无法正确禁用
  • 按下关闭按钮时 Java FX 中的关闭事件

    如果我直接按右上角的 X 按钮关闭窗口 Java FX 中是否存在任何事件处理程序 在这种情况下哪些事件会引起火灾 到目前为止 没有任何效果 setOnHiding 和 setOnCloseRequest 都不起作用 请帮忙 试试这个 im
  • jQuery Mobile 弹出内容高度超过窗口高度

    The jQuery 移动弹出窗口 http jquerymobile com demos 1 2 0 docs pages popup 尺寸仅限于具有左右边距 15 像素 顶部和底部边距 30 像素 http jquerymobile c
  • 执行oauth时如何创建弹出窗口?

    我想通过使用弹出窗口来完成 Lifestream 和其他网站使用 oauth 身份验证所做的事情 他们打开一个弹出窗口 不知何故没有被弹出窗口拦截器阻止 并将他们的网站变灰 然后 在允许 oauth 访问时 它会说重定向回原始站点并终止弹出
  • jQuery beforeunload 自定义弹出窗口用于离开页面

    您好 我想自定义离开页面的弹出窗口 有什么简单的方法可以做到这一点吗 我正在使用简单的 jQuery document ready function var myPopUp pop up css display block window b
  • Android-全屏视频视图

    我正在尝试使此 VideoView 以全屏模式显示 public class ViewVideo extends Activity private String filename private static final int INSER
  • 如何在场景生成器中设置控制器?

    我想用sceneBuilder for a javaFx应用 我有一个Package它被称作testPac其中有如图 1 所示的文件夹 我有一个fxml文件及其controller在 的里面view文件夹 现在 我不知道我必须在控制器盒内使
  • JavaFX 图像未在舞台中显示

    我尝试了很多次 尝试了很多方法 但都无法让自己的形象在舞台上如我所愿 我认为这可能与java寻找资源的路径有关 但我不确定 因为我刚刚开始使用视觉库 在本例中为JavaFX 这是我的目录结构 MyProject assets img myI
  • Javafx 组合框不会在实时更改时更新下拉列表大小?

    我正在使用 Javafx v8 0 25 b18 我出现的问题是动态组合框的下拉列表的大小不会改变 所以如果我最初在下拉列表中有两个项目 那么下拉列表大小将适合两个项目 但如果我现在用以下内容填充动态组合框三个项目 然后我在里面得到一个小滚
  • 全屏 API:会触发哪些事件?

    我需要知道当用户通过新的进入全屏模式时会触发哪些 DOM 事件全屏API https developer mozilla org en DOM Using full screen mode 我尝试了这个片段 但它没有触发 jQuery bo
  • HTML5中如何隐藏video标签的全屏按钮

    我需要隐藏 HTML5 中视频标签的全屏按钮 有什么办法可以实现吗 Thanks 我认为你可以通过更改 css 来实现这一点 document fragments 这些是 DOM1 规范 所有浏览器都支持 但关于样式 我不确定 Simple
  • 如何解决 onEditCommit 事件上的类型不匹配错误?

    我在 Fxml 中使用 onEditCommit 事件在用户编辑数据后检索数据 FXML 代码
  • ANDROID:如何从所有窗口顶部的通知或长按搜索按钮启动弹出对话框?

    我已经搜索过 一切都是关于启动活动而不是对话框 我想要做的是在状态栏中显示通知 当用户按下它时 在用户单击通知之前正在查看的内容之上会弹出一个对话框 我不希望对话框显示在主要活动或最近的应用程序列表的顶部 另外 如何通过长按搜索按钮启动对话
  • 如何使用javascript退出浏览器的F11全屏

    有没有办法退出通过点击创建的全屏F11 FullScreen callback null enabled function return document fullscreenEnabled document webkitFullscree
  • 如何右对齐 Javafx 工具栏中的按钮

    我正在使用 Java FX 场景生成器构建 UI 并且希望工具栏中的按钮浮动到工具栏的右侧 我尝试更改父级 工具栏 和按钮的节点方向 但两者似乎都被忽略 添加一个没有内容的窗格 该窗格始终会增长以适应工具栏中左对齐工具和右对齐工具之间的可用
  • 绘制圆和连接这些圆的曲线

    我需要绘制一些圆圈和连接这些圆圈的曲线 圆圈必须以行和列的方式绘制 所以我想使用 GridPane 将是一个不错的选择 但是 绘制完所有圆圈后 如何添加曲线来连接属于此 GridPane 上不同列的圆圈 我无法将 GridPane add
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我

随机推荐