我提出了一个简单的问题,但是我已经坚持了几个小时。
我有一个UnitMap
类,HashMap
包含AttackCommand
UnitMap units = new UnitMap();
我试图在TableView中显示MapEntry的值:
@FXML
private TableColumn<AttackCommand, Integer> columnlkav;
@FXML
private TableColumn<AttackCommand, Integer> columnstart;
@FXML
private TableView<AttackCommand> tableview;
@FXML
private TableColumn<AttackCommand, String> columnname;
@FXML
private TableColumn<AttackCommand, Point> columntarget;
private ObservableList<AttackCommand> tableData = FXCollections.observableArrayList();
@Override
public void initialize(URL location, ResourceBundle resources) {
AttackCommand ac = new AttackCommand();
ac.getUnits().put(ConstantsUnit.UNIT_ID_LKAV, 5);
ac.setName("Testname");
tableData.add(ac);
columnname.setCellValueFactory(new PropertyValueFactory<AttackCommand, String>("name"));
columnlkav.setCellValueFactory(new PropertyValueFactory<AttackCommand, Integer>("units"));
tableview.setEditable(true);
columnname.setEditable(true);
tableview.setItems(tableData);
}
因此,TableColumn中显示的条目逻辑{2 = 5},因为ConstantsUnit.UNIT_ID_LKAV = 2
如何正确显示值?我尝试了网上的一些例子,但没有得到它
顺便说一下:我没有SimpleStringProperty
使用name
而不使用AttackCommand
中的其他属性类,因为我想通过EclipseLink序列化数据到我的DerbyDB。