JavaFX:在非鼠标/键盘处理程序

时间:2017-05-08 16:21:47

标签: javafx fullscreen

我的应用程序包含一个名为TabPane的{​​{1}},可以说是两个tabPaneTabfirstTab。每当选择secondTab时,我希望应用程序位于firstTabFSEM,请参阅documentation);否则它应该处于正常的窗口模式。

我通常了解哪个full-screen exclusive mode处于活动状态

Tab

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

由于tabPane.getSelectionModel.selectedItemProperty().addListener(...); 是只读的,因此无法绑定(如文档中所述),我无法使用我的第一种方法,并且可以说,

stage.fullScreenProperty()

因为我暂时没有计划对应用程序进行签名,并且正如文档所述:

  

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

我也不能通过

使用第二种方法
stage.fullScreenProperty().bind(isFirstTabActive) //not working.

因为这样应用程序不会进入tabPane.getSelectionModel.selectedItemProperty().addListener(new ChangeListener<Tab>() { @Override public void changed(ObservableValue<? extends Tab> observable, Tab oldValue, Tab newValue) { stage.setFullScreen(newValue == firstTab); } ); ,而只会模拟全屏模式。

我知道我可以通过创建监听FSEM个事件的FSEM来输入EventHandler。但是这种方式我必须为tabPaneEventHandler添加两个MouseEvent.MOUSE_CLICKEDKeyEvent.KEY_TYPED s必须明确地找出最新情况,忽略他们{{1}喜欢:

EventHandler

这真的是去这里的方式吗?或者我可以使用Event做一些解决方法吗?这里有什么建议?感谢。

0 个答案:

没有答案