PropertyValueFactory/setCellValueFactory JavaFX
我在JavaFx中有以下基本代码。如果我想将PropertyValueFactory(“id”)的名称更改为“rid”,则它不再填充我的表。即使我也将SimpleLongProperty对象更改为rid。你知道“id”指的是哪里吗 公共类主控制器实现可初始化{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() {
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的名称
所以它指向方法名。抓住你了。谢谢