JavaFX:在非鼠标/键盘处理程序中设置全屏独占模式(FSEM)

JavaFX:在非鼠标/键盘处理程序中设置全屏独占模式(FSEM),javafx,fullscreen,Javafx,Fullscreen,我的应用程序由一个名为TabPane的TabPane组成,有两个Tabs:firstTab和secondTab。无论何时选择firstTab,我都希望应用程序处于FSEM(全屏独占模式,请参阅);否则,它应该处于正常窗口模式 我通常被告知哪个选项卡处于活动状态的方式是 BooleanBinding isFirstTabActive = tabPane.getSelectionModel(). selectedItemProperty().isEqualTo(firstTab); 或 由

我的应用程序由一个名为
TabPane
TabPane
组成,有两个
Tab
s:
firstTab
secondTab
。无论何时选择
firstTab
,我都希望应用程序处于
FSEM
全屏独占模式
,请参阅);否则,它应该处于正常窗口模式

我通常被告知哪个
选项卡处于活动状态的方式是

BooleanBinding isFirstTabActive = tabPane.getSelectionModel().
    selectedItemProperty().isEqualTo(firstTab);

由于
stage.fullScreenProperty()
是只读的,因此无法绑定(如文档中所述),因此我不能使用我的第一种方法并执行

stage.fullScreenProperty().bind(isFirstTabActive) //not working.
由于我目前不打算在应用程序上签名,并且如文档所述:

应用程序只能输入FSEM以响应用户输入。更具体地说,允许从鼠标(Node.mousePressed/mousererelease/mouseClicked)或键盘(Node.keyPressed/keyreased/keyTyped)事件处理程序输入

我也不能使用第二种方法,即

tabPane.getSelectionModel.selectedItemProperty().addListener(new ChangeListener<Tab>() {
  @Override
  public void changed(ObservableValue<? extends Tab> observable, Tab oldValue, Tab newValue) {
    stage.setFullScreen(newValue == firstTab);
  }
);
那么,这真的是去这里的路吗?或者我可以用
绑定
s进行一些变通吗?有什么建议吗?谢谢

tabPane.getSelectionModel.selectedItemProperty().addListener(new ChangeListener<Tab>() {
  @Override
  public void changed(ObservableValue<? extends Tab> observable, Tab oldValue, Tab newValue) {
    stage.setFullScreen(newValue == firstTab);
  }
);
tabPane.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
  @Override
  public void handle(MouseEvent event) {
    stage.setFullScreen(tabPane.getSelectionModel().getSelectedItem() == firstTab);
  }
});