小编par*_*zab的帖子

JavaFX在控件中显示属性

我正在自己完成Oracle的JavaFX教程.经过多年的摇摆(很久以前),我对新的智能功能很着迷,包括.属性.我很惊讶地发现这些例子(例如:https://docs.oracle.com/javafx/2/ui_controls/table-view.htm)并没有以我认为"正确"的方式使用它们.

该示例创建一个Person具有属性作为字段的类:

public static class Person {
    private final SimpleStringProperty firstName;
    ...
Run Code Online (Sandbox Code Playgroud)

但吸气剂不是属于物业,而是属于他们的价值观

    public String getFirstName() {
        return firstName.get();
    }
Run Code Online (Sandbox Code Playgroud)

所以当它将它们绑定到TableCell列中的s时,它会将它们包装在一个新属性中:

    emailCol.setCellValueFactory(
            new PropertyValueFactory<Person, String>("firstName"));
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎很复杂,并且错过了事件传播的真正优势,不仅仅是使用它:

    firstNameCol.setCellValueFactory( celldata -> 
        celldata.getValue().firstNameProperty());
Run Code Online (Sandbox Code Playgroud)

我的问题:这个例子是否有理由不直接在控件中公开和使用 bean的属性?我在这里错过了什么吗?

注意:我确实以这种方式更改了代码,并且示例运行得更好:Person其他控件对实体的更新立即传播,无需调用table.refresh()例如

java javafx javafx-8

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

标签 统计

java ×1

javafx ×1

javafx-8 ×1