PropertyValueFactory/setCellValueFactory JavaFX

PropertyValueFactory/setCellValueFactory JavaFX,java,javafx-8,scenebuilder,Java,Javafx 8,Scenebuilder,我在JavaFx中有以下基本代码。如果我想将PropertyValueFactory(“id”)的名称更改为“rid”,则它不再填充我的表。即使我也将SimpleLongProperty对象更改为rid。你知道“id”指的是哪里吗 公共类主控制器实现可初始化{ public class Item { public SimpleLongProperty id = new SimpleLongProperty(); public Long getId() {

我在JavaFx中有以下基本代码。如果我想将PropertyValueFactory(“id”)的名称更改为“rid”,则它不再填充我的表。即使我也将SimpleLongProperty对象更改为rid。你知道“id”指的是哪里吗

公共类主控制器实现可初始化{

    public class Item {
        public SimpleLongProperty id = new SimpleLongProperty();

        public Long getId() {
            return id.get();
        }
    }

    // The table and columns
    @FXML TableView<Item> itemTbl;
    @FXML TableColumn itemIdCol;
    @FXML Button add_Button;

    // The table's data
    ObservableList<Item> data;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Set up the table data
        itemIdCol.setCellValueFactory(
            new PropertyValueFactory<Item,Long>("id")
        );

        data = FXCollections.observableArrayList();
        itemTbl.setItems(data);
    }    

    static long nextId = 1;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        Item item = new Item();
        item.id.setValue(nextId++);
        data.add(item);
    }
}
    public class Item {
        public SimpleLongProperty rid = new SimpleLongProperty();

        public Long getId() {
            return rid.get();
        }
    }

    // The table and columns
    @FXML TableView<Item> itemTbl;
    @FXML TableColumn itemIdCol;
    @FXML Button add_Button;

    // The table's data
    ObservableList<Item> data;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Set up the table data
        itemIdCol.setCellValueFactory(
            new PropertyValueFactory<Item,Long>("rid")
        );

        data = FXCollections.observableArrayList();
        itemTbl.setItems(data);
    }    

    static long nextId = 1;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        Item item = new Item();
        item.rid.setValue(nextId++);
        data.add(item);
    }
}
公共类项目{
公共SimpleLongProperty id=新SimpleLongProperty();
公共长getId(){
返回id.get();
}
}
//表和列
@FXML表格视图项目TBL;
@FXML表列itemIdCol;
@FXML按钮添加按钮;
//表中的数据
可观测数据;
@凌驾
公共void初始化(URL、ResourceBundle rb){
//设置表数据
itemIdCol.setCellValueFactory(
新PropertyValueFactory(“id”)
);
data=FXCollections.observearraylist();
itemTbl.setItems(数据);
}    
静态长nextId=1;
@FXML
私有无效把手按钮操作(ActionEvent事件){
项目=新项目();
item.id.setValue(nextId++);
数据。添加(项目);
}
}
属性值工厂已更改的代码:

公共类主控制器实现可初始化{

    public class Item {
        public SimpleLongProperty id = new SimpleLongProperty();

        public Long getId() {
            return id.get();
        }
    }

    // The table and columns
    @FXML TableView<Item> itemTbl;
    @FXML TableColumn itemIdCol;
    @FXML Button add_Button;

    // The table's data
    ObservableList<Item> data;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Set up the table data
        itemIdCol.setCellValueFactory(
            new PropertyValueFactory<Item,Long>("id")
        );

        data = FXCollections.observableArrayList();
        itemTbl.setItems(data);
    }    

    static long nextId = 1;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        Item item = new Item();
        item.id.setValue(nextId++);
        data.add(item);
    }
}
    public class Item {
        public SimpleLongProperty rid = new SimpleLongProperty();

        public Long getId() {
            return rid.get();
        }
    }

    // The table and columns
    @FXML TableView<Item> itemTbl;
    @FXML TableColumn itemIdCol;
    @FXML Button add_Button;

    // The table's data
    ObservableList<Item> data;

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Set up the table data
        itemIdCol.setCellValueFactory(
            new PropertyValueFactory<Item,Long>("rid")
        );

        data = FXCollections.observableArrayList();
        itemTbl.setItems(data);
    }    

    static long nextId = 1;

    @FXML
    private void handleButtonAction(ActionEvent event) {
        Item item = new Item();
        item.rid.setValue(nextId++);
        data.add(item);
    }
}
公共类项目{
public SimpleLongProperty rid=新的SimpleLongProperty();
公共长getId(){
return rid.get();
}
}
//表和列
@FXML表格视图项目TBL;
@FXML表列itemIdCol;
@FXML按钮添加按钮;
//表中的数据
可观测数据;
@凌驾
公共void初始化(URL、ResourceBundle rb){
//设置表数据
itemIdCol.setCellValueFactory(
新PropertyValue工厂(“rid”)
);
data=FXCollections.observearraylist();
itemTbl.setItems(数据);
}    
静态长nextId=1;
@FXML
私有无效把手按钮操作(ActionEvent事件){
项目=新项目();
item.rid.setValue(nextId++);
数据。添加(项目);
}
}

在Item类中需要一个名为

public Long getRid(){return rid.get();}

注意,重要的不是变量名(通常是私有的),而是getter的名称


所以它指向方法名。抓住你了。谢谢