JavaFX TableView PropertyValueFactory错误 [英] JavaFX TableView PropertyValueFactory Error
问题描述
我在JavaFX中遇到一个简单的问题,即它不起作用, PropertyValueFactory
无法从类中获得我的 ID
:这是我的控制器:>
I'm having simple problem in my JavaFX somehow it didn't work, The PropertyValueFactory
unable to get my ID
from class: This is my Controller:
public TableColumn ItemIDTableColumn;
ItemIDTableColumn.setCellValueFactory(new PropertyValueFactory<ReceiptItem, String>("mItemID"));
ItemIDTableColumn.setCellFactory(stringCellFactory);
ItemTableView.setItems(ReceiptItem);
Callback<TableColumn, TableCell> stringCellFactory =
new Callback<TableColumn, TableCell>() {
@Override
public TableCell call(TableColumn p) {
MyStringTableCell cell = new MyStringTableCell();
cell.addEventFilter(MouseEvent.MOUSE_CLICKED, new MyEventHandler());
return cell;
}
};
class MyStringTableCell extends TableCell<ReceiptItem, String> {
@Override
public void updateItem(String item, boolean empty) {
super.updateItem(item, empty);
setText(empty ? null : getString());
setGraphic(null);
}
private String getString() {
return getItem() == null ? "" : getItem().toString();
}
}
这是我的课程:
package ModelData;
public class ReceiptItem {
private String mItemID;
public String getmItemID() {
return mItemID;
}
public void setmItemID(String mItemID) {
this.mItemID = mItemID;
}
}
如此处所示,我正在使用getter和setter,所以有人知道这是什么问题吗?
As seen here, I'm using getter and setter, so anyone know what's the problem?
推荐答案
PropertyValueFactory
期望getter方法中属性名称的第一个字母为大写.在这种情况下,它将查找名为 getMItemID
的方法.您的方法称为 getmItemID
,但是...
PropertyValueFactory
expects the first letter of the property name in the getter method to be upper case. In this case it looks for a method named getMItemID
. Your method is called getmItemID
however...
请注意,对 ReceiptItem
的更新不会自动更新 TableView
,因为您没有提供 mItemIDProperty
方法来返回包装属性的对象属性值.
Note that updates to a ReceiptItem
will not automatically update the TableView
, since you do not provide a mItemIDProperty
method returning a property object wrapping the property value.
这篇关于JavaFX TableView PropertyValueFactory错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!