当前位置: 首页 > 知识库问答 >
问题:

Javafx组合框数据填充

仲孙铭
2023-03-14

我想在一个组合框中填充一些数据。这很好。但是,我想动态地改变组合框中的数据。

目前我有一个表,在组合框中,我在表列中显示数据的唯一值。现在,表数据存储在静态可观察列表变量中。我想根据表中显示的数据更改组合框中的数据。也就是说,如果存储表数据的静态可观察列表发生更改,我希望在没有手动干预的情况下更改组合框数据。

如果没有单独的静态变量用于组合框,这是否可能?

共有1个答案

鲁华茂
2023-03-14

嗯,让我们看看,我们有你的TableView数据:

< code >可观察列表

和您的组合框数据:

< code >可观察列表

如果您想将两者链接在一起,最简单的方法是使用FilteredList:

< code >可观察列表

因此,无论何时谓词tableData发生变化,这些变化都将反映在comboboxData中,无需做任何进一步的操作。您现在只需编写一个能够过滤表数据的谓词,只留下您想要显示的组合框条目。

但是,如果您只想在 ComboBox 中显示表数据的不同值,那么使用简单的谓词就不那么容易了。这是一种非常丑陋的方法,使用监听器和集来更新 ComboBox 列表:

ObservableList<String> tableData = FXCollections.observableArrayList();
ObservableList<String> comboBoxData = FXCollections.observableArrayList();

tableData.addListener((Observable change) -> {
    Set<String> distinct = new HashSet<>(tableData);
    comboBoxData.setAll(distinct);
});

当您的表包含大型数据集时,这很可能会导致性能问题,但对于较小的数据集,这应该没问题。

 类似资料:
  • 我正在查询Sql Server并返回一个List-我想使用此List作为我的组合框的源。下面是我正在使用的代码,它运行时没有错误,但我的组合框始终为空并且从不填充。这里有什么不正确的? 主要的Java语言 样品fxml

  • 我无法填充从场景生成器创建的JavaFX组合框。虽然我已经搜索过了,但我找不到解决这个错误的方法。 下面的例子都不管用。 帮助将不胜感激。

  • 我有两个组合框: 根据comboBoxMainCategory中选择的值,comboBoxSubCategory应填充相应的枚举。 如果comboBoxMainCategory选择“Europe”,则comboBoxSubCategory应填充SubCategory Europe。如果为“USA”,则带有子类别USA。 你是如何做到这一点的? 这是我的代码: 问题是,因为comboBoxSubCa

  • 我需要关于设置组合框按钮单元格的帮助。我使用一个组合框来显示可观察列表中的数据,该列表包含两个列的表中的数据,“步骤”和“下一步”(下一步包含一个插入在步骤列中的项目);我需要做的是显示带有“步骤”列表的组合框列表单元格和相对的“下一步”按钮单元格。现在,我可以正确地看到列表单元格,但我的按钮单元格总是空的。 代码: 提前感谢。

  • 使用此代码,我初始化了组合框 并使用以下方法获取价值: 并将值插入mysql数据库。现在,在类别组合框中插入下一个值之前,我需要将数据库中的值导入到组合框的下拉列表中,值应该显示在组合框中。

  • 我试图避免将一大堆数字硬编码到我的JavaFX ComboBox中,但我不知道有任何其他方法可以做到这一点。目前我正在这样做: 然而,我的目标是调用一个方法,该方法将生成一个达到某个指定上限(例如50)的数字列表。我尝试了以下方法,但它只是添加了最后一个,而不是全部50: