0

我根据 JavaFX 教程创建了这段代码:

    final String change[] =
    {
        "Full Screen", "Exit Full Screen"
    };
    final MenuItem fullScreen = MenuItemBuilder.create().text(change[0]).build();

    fullScreen.setOnAction(new EventHandler<ActionEvent>()
    {
        @Override
        public void handle(ActionEvent e)
        {
            fullScreen.setText((fullScreen.getText().equals(change[0])) ? change[1] : change[0]);

            if (fullScreen.getText().equals(change[0]))
            {
                primaryStage.setFullScreen(false);
            }
            else
            {
                primaryStage.setFullScreen(true);
            }
        }
    });

    view.getItems().add(fullScreen);

我需要通过使用我想要设置文本的 switch 语句和setFullScreen. 有没有更优雅的方法来实现这一点?

编辑:此代码有效,但实现非常难看。

4

1 回答 1

3
  1. 检查真实状态而不是文本
  2. 使用绑定更新文本,您无需关心初始化和其他方法更改的全屏模式

    MenuItem fullScreen = new MenuItem();
    
    fullScreen.textProperty().bind(
         new When(primaryStage.fullScreenProperty())
              .then("Exit Full Screen")
              .otherwise("Full Screen"));
    
    fullScreen.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent event) {
            primaryStage.setFullScreen(!primaryStage.isFullScreen());
        }
    });
    
于 2013-07-15T12:26:10.493 回答