我在JavaFx中有以下基本代码。如果我想更改PropertyValueFactory的名称(" id")让我们说" rid"它不再填满我的桌子了。即使我也将SimpleLongProperty对象更改为rid。你知道" id"是引用/指向?
公共类Main_Controller实现Initializable {
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);
}
}
代码已更改PropertyValueFactory:
公共类Main_Controller实现Initializable {
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);
}
}
答案 0 :(得分:0)
您的Item类中需要一个名为
的方法public Long getRid(){return rid.get();}
或
public SimpleLongProperty ridProperty(){return rid;}
注意,它不是变量的名称,通常是私有的,但重要的是getter的名称。