listview - 如何在 ListView 中使用 JavaFX FilteredList?

标签 listview javafx filtering

我的应用程序中有一个包含字符串的 ListView。 现在,我想通过输入字段过滤此列表。但我发现的所有有关 FilteredLists 的示例都是关于如何过滤表的。

如何使用 FilteredList 过滤 ListView?

最佳答案

这相当简单明了:

@Override
public void start(Stage primaryStage) {

    ObservableList<String> data = FXCollections.observableArrayList();
    IntStream.range(0, 1000).mapToObj(Integer::toString).forEach(data::add);

    FilteredList<String> filteredData = new FilteredList<>(data, s -> true);

    TextField filterInput = new TextField();
    filterInput.textProperty().addListener(obs->{
        String filter = filterInput.getText(); 
        if(filter == null || filter.length() == 0) {
            filteredData.setPredicate(s -> true);
        }
        else {
            filteredData.setPredicate(s -> s.contains(filter));
        }
    });


    BorderPane content = new BorderPane(new ListView<>(filteredData));
    content.setBottom(filterInput);

    Scene scene = new Scene(content, 500, 500);
    primaryStage.setScene(scene);
    primaryStage.show();
}

关于listview - 如何在 ListView 中使用 JavaFX FilteredList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28448851/

相关文章:

JavaFX ComboBox - 在下拉列表可见时,在文本框中选择全部 Control + A

java - 是否可以在 Windows 2008 服务器上使用 Java FX 启用硬件加速?

java - FilenameFilter 产生神秘结果

Android:在ListView的onItemClickListener()中获取TextView

android - 避免多次点击

JavaFX8 : How to create listener for selection of row in Tableview?

maven - 如何使用 Maven 仅对一个属性进行过滤

matlab - matlab 中的陷波滤波器和谐波噪声

java - 是否可以使用改造来获取 listView 内的 Double 值数组?

python - 如何使用 Django 连接 3 个表进行查询