【问题标题】:How to shuffle a FilteredList in java?java - 如何在java中打乱FilteredList?
【发布时间】:2017-10-31 20:56:36
【问题描述】:

当我想随机播放 FilteredList 时,我得到了 java.lang.UnsupportedOperationException

如何处理?

代码:

FilteredList<Card> filteredData = 
    new FilteredList(ob, filterByOption(option.get("selectedCard"), option.get("chapter")));

if (option.get("cardOrder") == "shuffle") {
    filterCards=filteredData;
    FXCollections.shuffle(filterCards);
}

【问题讨论】:

    标签: java javafx java-8 javafx-8


    【解决方案1】:

    documentation中所写:

    包装一个 ObservableList 并使用提供的过滤它的内容 谓词。 ObservableList 中的所有更改都被传播 立即到 FilteredList。

    因此,您可以改组底层源 ObservableList

    FXCollections.shuffle(ob);
    

    示例:

    ObservableList<String> obsList = 
        FXCollections.observableArrayList("Amanda", "Bill", "Adam", "Albus", "Cicero");
    FilteredList<String> fList = new FilteredList<>(obsList, s -> s.startsWith("A"));
    
    System.out.println(fList);
    FXCollections.shuffle(obsList);
    System.out.println(fList);
    

    输出:

    [Amanda, Adam, Albus]
    [Adam, Albus, Amanda]
    

    【讨论】:

    • @user3235815:您可以通过点击左侧的empty check mark 来接受答案。
    猜你喜欢
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 2017-11-06
    • 2012-07-27
    相关资源
    最近更新 更多