当前位置: 首页 > 知识库问答 >
问题:

如何使非模态阶段始终显示在JavaFx全屏阶段的顶部

佘俊茂
2023-03-14

我有过

  • 用户可以配置为全屏模式的主要阶段
  • 用户可以打开的辅助阶段(工具窗口)。这些窗口应始终位于主阶段的顶部(无论其是否处于全屏模式)。

后者不起作用,即使我使用setAlwaysOnTop(true)作为次要阶段,一旦用户单击主要阶段,它们将消失在主要阶段之后。这只发生在主阶段处于全屏模式时,如果主阶段不处于全屏模式,一切正常。如何在全屏舞台前启用工具窗口的概念?示例代码

public class Test extends Application {
    @Override
    public void start(Stage stage) {
        VBox vbox = new VBox();
        Scene scene = new Scene(vbox);
        stage.setScene(scene);

        Button button1 = new Button("New Tool Window");
        button1.setOnAction((e) -> {
            Stage toolStage = new Stage();
            Scene toolScene = new Scene(new Label("Am I on top?"), 300, 250);
            toolStage.setScene(toolScene);
            toolStage.initOwner(stage);
            toolStage.setAlwaysOnTop(true);
            toolStage.show();
        });

        Button button2 = new Button("Close");
        button2.setOnAction((e) -> System.exit(0));

        vbox.getChildren().addAll(button1, button2);
        stage.show();
        stage.setFullScreen(true);
    }

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

2016年8月20日更新:确认为错误:JDK-8164210

共有2个答案

卫梓
2023-03-14

你需要在设置initOwder后设置initmodality

toolStage.initOwner(stage);
toolStage.initModality(Modality.APPLICATION_MODAL);
逄烨
2023-03-14

绕过此限制的一种方法是:禁用全屏模式为psuedo全屏创建按键组合将舞台样式设置为未装饰且不可调整大小将屏幕调整为用户屏幕的大小,并将其定位为0,0。

很容易创建自己的边框来最小化和关闭程序,如下所示:

JavaFX Stage.set最大化只能在Mac OSX上工作一次(10.9.5)

在这里:

JavaFX8任务栏图标侦听器

 类似资料:
  • 这是我的项目结构: 我在这里做错了什么?或者eclipse在这里期待着NetBeans没有的东西?!?

  • 我对全屏舞台有意见。我有一个主阶段,当应用程序启动时立即进入全屏,然后当用户调用特定事件时,我创建第二阶段,它也是全屏的,但它显示图像,其背景是透明的,所以主阶段及其内容仍然可见。 问题是当我显示这个新的舞台并将其设置为全屏模式时,它会使我的主舞台退出全屏模式并调整大小。 主要舞台的创作: 新阶段的创建:

  • 有可用的组合键方法如下: 是否有任何方法可以捕获鼠标点击或触摸屏亭的任何组合以退出全屏锁定?

  • 我正在使用Netbeans 7.2和Scene Builder1.0开发一个JavaFX应用程序。我有我的主屏幕设置,我想有它,所以我点击一个按钮,它将关闭主窗口和打开另一个。主Stage对象位于main类中,但controller类是独立的,不能访问它,因为它不是静态的,并且位于不同的类中。我如何改变场景或舞台?

  • 问题内容: 我加载的第一阶段始终可以全屏正常打开。 但是,当我更改为另一个FXML时,应用程序将保持全屏显示(没有顶部工具栏。),但是实际视图的内容将根据FXML从根AnchorPane的prefWidth / prefHeight调整大小(我可以在右下角看到桌面:| ),并且希望它能动态适应我的屏幕分辨率。 谢谢。 @稍后编辑: 因此,在我的主类的start方法上,我加载了一个场景(从FXML文