小编Tho*_*ard的帖子

有没有办法将 ObservableList 绑定到 ObservableMap?

我以ObservableMap<T, Foo>. 要在视图中实现这些数据,我需要以ObservableList<Foo>.

因为我需要 Map Collection 中的数据(以避免重复和其他原因),我想知道是否可以绑定这两个集合。

就像是:

ObservableMap<Integer, Foo> data = FXCollections.observableHashMap();
ObservableList<Foo> target = FXCollections.observableArrayList();

// Won't work 
Bindings.bindContent(target, data.values());
Run Code Online (Sandbox Code Playgroud)

绑定,因为数据可以在运行时更改。

编辑: 使用地图值初始化列表不起作用,因为将有附加的 Foo 添加到地图中:使用字符串作为地图值的示例:

ObservableMap<Integer, String> map = FXCollections.observableHashMap();
map.put(1, "a");
map.put(2, "b");

ObservableList<String> list = FXCollections.observableArrayList(map.value());

//map = {1=a, 2=b}
//list = [a, b]
// ok

map.put(3, "c");

//map = {1=a, 2=b, 3=c}
//list = [a, b]
// no update    
Run Code Online (Sandbox Code Playgroud)

java javafx arraylist hashmap javafx-8

6
推荐指数
1
解决办法
754
查看次数

如何在回调类中传递不同的泛型?

对于 JFXTreeTableColumn,我编写了一个自定义单元工厂作为回调。代码工作正常,但如果我想传递不同的泛型怎么办?

我已经尝试将泛型作为 ? 或 T, S 但我肯定做错了什么

public class CallbackImpl implements Callback<TreeTableColumn<Order, String>, TreeTableCell<Order, String>> {

    private final ObservableList<String> paymentData;

    public CallbackImpl(ObservableList<String> paymentData) {
        this.paymentData = paymentData;
    }

    @Override
    public TreeTableCell<Order, String> call(TreeTableColumn<Order, String> tc) {
        ComboBox<String> combo = new ComboBox<>();
        combo.getItems().addAll(paymentData);
        JFXTreeTableCell<Order, String> cell = new JFXTreeTableCell<Order, String>() {
            @Override
            protected void updateItem(String payment, boolean empty) {
                super.updateItem(payment, empty);
                if (empty) {
                    setGraphic(null);
                } else {
                    combo.setValue(payment);
                    setGraphic(combo);
                }
            }
        };
        return cell ;
    }
}
Run Code Online (Sandbox Code Playgroud)

我想传递一个 Table …

java javafx callback

3
推荐指数
1
解决办法
60
查看次数

标签 统计

java ×2

javafx ×2

arraylist ×1

callback ×1

hashmap ×1

javafx-8 ×1