我的应用程序包含一个名为TabPane
的{{1}},可以说是两个tabPane
:Tab
和firstTab
。每当选择secondTab
时,我希望应用程序位于firstTab
(FSEM
,请参阅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
。但是这种方式我必须为tabPane
和EventHandler
添加两个MouseEvent.MOUSE_CLICKED
,KeyEvent.KEY_TYPED
s必须明确地找出最新情况,忽略他们{{1}喜欢:
EventHandler
这真的是去这里的方式吗?或者我可以使用Event
做一些解决方法吗?这里有什么建议?感谢。