【问题标题】:How to change scene when in fullscreen in JavaFX and avoid "Press ESC to exit fullscreen" message如何在 JavaFX 中全屏时更改场景并避免“按 ESC 退出全屏”消息
【发布时间】:2013-05-18 18:58:53
【问题描述】:

如何改变全屏窗口的场景并避免显示“按ESC退出全屏”消息?

我正在构建全屏桌面应用程序(触摸屏信息亭),因此我可以在开始时显示此消息,但现在总是在用户更改场景时显示。

有两个问题:

  1. 在全屏和场景更改时,窗口大小会减小。 解决方案是切换全屏,但会显示该消息。 (Change scene in full screen JavaFX)

  2. 由于安全原因,无法禁用“按 ESC ..”消息 (https://forums.oracle.com/forums/thread.jspa?threadID=2287258)

谢谢。

【问题讨论】:

    标签: javafx-2 javafx


    【解决方案1】:

    JavaFX 8 通过添加以下 2 个方法解决了这个问题:

    如果您将退出组合键设置为KeyCombination.NO_MATCH,则弹出消息将被完全禁用。

    【讨论】:

      【解决方案2】:

      关于 2. JavaFX8 中将有一个新功能来消除该警告。目前的提议是会有一个命令行选项。您可以在 openjfx 邮件列表 (http://markmail.org/search/?q=+javafx.Stage.fullScreenWarning%3Dfalse#query:%20javafx.Stage.fullScreenWarning%3Dfalse+page:1+mid:ptqpgut2vvvhgkip+state:results) 上查看讨论

      【讨论】:

      • 谢谢。 6月2日发售?在那里可用 - jdk8.java.net/download.html ?
      • 为什么是 6 月 2 日? Java8 推迟到 2014 年 3 月
      【解决方案3】:
      import javafx.application.Application;
      import javafx.scene.Scene;
      import javafx.scene.layout.StackPane;
      import javafx.stage.Stage;
      import javafx.beans.value.ChangeListener;
      import javafx.beans.value.ObservableValue;
      import javafx.scene.input.KeyCombination;
      
      public class GameApplication extends Application{
          @Override
          public void start(Stage stage){
              StackPane stackPane=new StackPane();
              Scene scene=new Scene(stackPane,500,500);
              stage.setScene(scene);
              stage.setTitle("Title");
              //Fullscreen
              stage.setFullScreen(true);
              //We don't want to exit the fullscreen when keys are pressed
              stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
              //We are adding a change listener to lock the application in full
              //screen mode only
              stage.fullScreenProperty().addListener(new ChangeListener<Boolean>() {
      
                  @Override
                  public void changed(ObservableValue<? extends Boolean> observable,
                          Boolean oldValue, Boolean newValue) {
                      if(newValue != null && !newValue.booleanValue())
                          stage.setFullScreen(true);
                  }
              });
              stage.show();
          }
          //main method
          public static void main(String ...$){
              launch($);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-10-21
        • 2019-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 2015-03-15
        • 1970-01-01
        相关资源
        最近更新 更多