当前位置: 首页 > 面试题库 >

JavaFX TabPane:如何收听选择更改

公良骁
2023-03-14
问题内容

用户从一个选项卡转到另一个选项卡时,我想执行一些操作,因为我是通过SceneBuilder进行表单设计的,所以我无法使用提到的代码(他使用过TabPaneBuilder类)

我猜想这段代码可以用,但是对选项卡选择的更改没有反应。

@FXML
protected TabPane chatTabs;
.
.    
.
chatTabs.selectionModelProperty().addListener(
    new ChangeListener<SingleSelectionModel<Tab>> {
            @Override
            public void changed(ObservableValue<? extends SingleSelectionModel<Tab>> ov, SingleSelectionModel<Tab> t, SingleSelectionModel<Tab> t1) {
                System.err.println("changed");
            }
        }
    }
);

问题答案:

使用变更侦听器的正确方法是:

chatTabs.getSelectionModel().selectedItemProperty().addListener(
    new ChangeListener<Tab>() {
        @Override
        public void changed(ObservableValue<? extends Tab> ov, Tab t, Tab t1) {
            System.out.println("Tab Selection changed");
        }
    }
);

为什么有问题的代码行不通?我猜是因为您的更改侦听器在“ selectionModel”而不是“ selectedItem”中监听更改

了解何时添加或删除选项卡比较麻烦:

tabs.addListener( (Change<? extends Tab> change) -> {
  while( change.next() ) {
    if( change.wasAdded() ) {
      for( final Tab tab : change.getAddedSubList() ) {
        System.out.println( "Tab Added: " + tab );
      }
    } else if( change.wasRemoved() ) {
      // ...
    }
  }
} );


 类似资料:
  • 我已经找了一段时间了,但我没有找到任何有效的东西。我希望这样做,以便每次用户单击我列表中的新客户机时,客户机的详细信息都会出现在字段中(请参见下面的屏幕截图):

  • 问题内容: 要开始执行两个goroutine的无限循环,我可以使用以下代码: 收到味精后,它将启动一个新的goroutine并永远继续下去。 我现在想对N个goroutine具有相同的行为,但是在这种情况下select语句将如何显示? 这是我开始使用的代码,但是我对如何编写select语句感到困惑 问题答案: 您可以使用reflect包中的函数执行此操作: Select执行案例列表中描述的选择操作

  • 问题内容: 每当尝试从中进行选择时,我都试图触发一个事件。 我遇到的问题是没有明显的方法。 我尝试使用,但从未触发。 没有覆盖的模型,我没有想法。 如何通知有关 选择更改的通知? 编辑:我要道歉。事实证明,我使用的是行为不佳的子类,但由于你的回答是好的,因此我将保留该问题。 问题答案: 它应该响应,如下所示: 正确地指出了也可以。但是,你可能会得到 ,一个用于取消选择先前选择的项目,另一个用于选择

  • 问题内容: 我有一个。当用户在更改时按下键时,我会tp做点什么。我怎样才能做到这一点? 最简单的方法: 问题答案: 文本观察器的示例代码

  • 希望能澄清一下我什么时候应该使用和。这可能不是节奏问题,但也许我错过了一些关于Golang的知识。 对于我认为基本思想是等待通道的下一个输出。不完全确定什么是可以。 例如,在cadence示例中,< code>local_activity链接并粘贴在下面: 我们不使用任何 但是,在这里的例子中,它也使用信号通道:根据外部输入改变优步节奏睡眠时间 我还会将代码粘贴到这里 你可以看到有,我不完全确定它

  • 问题内容: 我正在尝试设置选择选项下拉列表的样式。是否可以使选项的字体大小与默认值不同?例如,默认值: 尺寸为7pt;和其中一种选择, 尺寸为13pt。 这是我的下拉列表: 不幸的是,它仅适用于Firefox。可能其他浏览器不支持元素样式吗? 我测试过的浏览器: Chrome:版本27.0.1453.116 m IE:10 的Firefox:22.0 问题答案: 将CSS类添加到标签中以对其进行样