当舞台处于全屏模式时 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 弹出窗口隐藏 的相关文章

  • iPhone 旋转和全屏视频

    我遇到了一个奇怪的问题 需要帮助解决 我的应用程序始终以纵向模式运行 我明确希望它是这样的 在应用程序的一处 我有一个 UIWebView 它工作得很好 正如预期的那样 此 Web 视图并非始终显示 而是动态添加到主视图并根据用户操作删除
  • OSX Lion 上 Java 应用程序的全屏功能

    如何在 Java 应用程序中 本地 实现 OSX Lion 的全屏功能 目前给出的答案包含了一种实现全屏功能的好方法 我读到 Eclipse 可能能够使用 Lion 的 本机 全屏功能 这就是我要问的 我在 Apple 的 Java 发行说
  • 使用 C# (telerik) 在 wpf 中自定义弹出窗口的设计

    我在按钮单击事件中显示一个弹出窗口 gt 我在该弹出窗口中保留了一个自定义用户控件 因此每当显示弹出窗口时 都会显示自定义用户控件 但现在我需要修改自定义控件 弹出窗口中当前的自定义控件如下所示 但我需要角落看起来像下面的图片 如何做到这一
  • JavaFX Maven 插件:在当前项目和插件组中找不到前缀“jfx”的插件

    我正在尝试在 Eclipse Maven 项目中为我的 JavaFX 应用程序创建一个可执行 jar 我正在关注这个线程 Eclipse 中使用 Maven 的 JavaFx 应用程序 https stackoverflow com que
  • 禁用 JavaFX 图表背景图像的缓存

    我有一个简单的折线图 按下按钮即可在新窗口中打开 该折线图使用存储在硬盘上的图像作为背景 如果我关闭计算折线图的窗口 更改图像文件 或删除它 并重新打开窗口 则会再次加载旧图像 我在场景生成器和代码中禁用了折线图的缓存 但这没有帮助 有人能
  • 如何求整个网页的高度?

    我正在研究一种捕获网站屏幕截图的解决方案 我正在使用 slimerjs org 中提到的默认示例来完成工作 这个工具的屏幕截图非常棒 但我需要拍摄网站的全高屏幕截图 当捕获类似网站的屏幕时http www yellowpages com h
  • 如何向我的应用程序添加“撰写评论”/“给我们评分”功能?

    我希望在我的应用程序中添加某种 撰写评论 或 给我们评分 功能 以便我的客户可以轻松地对我的应用程序进行评分和评论 我能想到的最佳实践是在我的应用程序中进行某种弹出窗口或打开 UIWebView 这样用户在打开 App Store 应用程序
  • javafx大图像崩溃

    JavaFX 新手 此示例适用于小图像 但是大图像会使 ImageView 崩溃 我的示例代码有缺陷吗 JavaFX 中的大图像有问题吗 还有别的事吗 我从网上抓了一个例子 http www java2s com Code Java Jav
  • 如何在JavaFX中使用Node类的intersect()方法?

    JavaFX Node 类提供了两种相交方法 intersects Bounds localBounds and intersects double localX double localY double localWidth double
  • JavaFX 8:拦截应用程序“退出”

    为了验证用户所做的所有更改是否已保存 我想拦截 JavaFX 应用程序的退出 退出 是否有一种通用的方法来实现这一目标 例如覆盖事件 或者还有更多方法吗 正如他们已经说过的 这是通过拦截来完成的WindowEvent WINDOW CLOS
  • Jquery 移动弹出窗口在页面调整大小或滚动时在错误位置重新打开

    在 PC 浏览器中 存在弹出窗口在调整窗口大小时改变其位置的问题 我用谷歌搜索了一下 发现 JMF 有一个错误 将positionTo从origin codeSource更改为window 在移动浏览器中 我在页面滚动上遇到同样的问题 弹出
  • JavaFX 的 Swing 计时器替代方案以及线程管理差异

    使用 JavaFX 的 Swing 计时器是否安全 或者 Swing 有特殊的替代方案吗 JavaFX 和 Swing 的线程管理有什么区别 事实上我很想知道相当于摇摆计时器 SwingUtilities invokeLater and i
  • 全屏 Exoplayer

    我尝试用以下内容显示节目视频 mp4 外播放器 in 回收视图 and 浏览器 我展示了具有自定义布局的视频控制器 到目前为止 一切都很好 现在尝试像其他视频播放器一样全屏播放视频 但在中找不到好方法外播放器 doc 谁能帮我 ExoPla
  • jQuery fullCalendar + Fancybox 弹出窗口编辑事件

    我正在使用此代码在 fullCalendar 上生成事件
  • 检测 TableView JavaFX 行上的双击

    我需要检测 a 的一行上的双击TableView 如何监听该行任何部分的双击并获取该行的所有数据并将其打印到控制台 TableView
  • jQuery Mobile 弹出内容高度超过窗口高度

    The jQuery 移动弹出窗口 http jquerymobile com demos 1 2 0 docs pages popup 尺寸仅限于具有左右边距 15 像素 顶部和底部边距 30 像素 http jquerymobile c
  • JavaFX - Outlook 附件 - DnD

    您好 我需要一个 DnD 解决方案来将 Outlook 邮件附件拖到堆栈窗格中 JavaFX Outlook 2010 stackpaneDragAndDropZone setOnDragOver DragEvent event gt Dr
  • 使用Javascript自动打开弹出新窗口[重复]

    这个问题在这里已经有答案了 如何使用Javascript加载页面时打开弹出新窗口 我希望 当网站加载时 它会自动打开弹出新窗口 我使用以下内容 不行 尝试这个
  • JavaFX 如何在不改变线宽的情况下缩放路径的坐标?

    我目前正在制作具有缩放和平移功能的阶梯折线图 由于我需要处理的数据量非常大 因此每次调用layoutPlotChildren 时 我无法重新创建步骤线的整个路径 所以我的想法是创建一次路径元素 然后在缩放和平移事件时对其进行转换 到目前为止
  • 如何使用 jQuery 使 div 全屏并位于所有其他元素之上?

    div style background color grey div 有简单的方法吗 定义样式overlay或类似的东西 然后你可以使用 jQuery 添加新类 myDiv addClass overlay 如果你想添加点击事件 你可以这

随机推荐