如何使用JavaFX使用新信息更新表格单元格?

时间:2017-04-19 19:40:11

标签: java javafx cell

每当我点击一行时,我想用新信息更新表格。由于某种原因,当我点击它没有做任何事情和错误。知道为什么我不能这样做吗?

public HierarchyItemTreeCellCallback(TreeView<Requirement> treeView, DataModel dataModelIn)
{
    super();
    treeViewParent = treeView;
    dataModel = dataModelIn;
  }

  @Override
    public TreeCell<Requirement> call(TreeView<Requirement> param)
    {
    TreeCell<Requirement> cell = new HierarchyItemTreeCell();
    cell.addEventFilter(MouseEvent.MOUSE_PRESSED,new EventHandler<MouseEvent>()
    {
            @Override
            public void handle(MouseEvent event)
            {
                HierarchyTabController hierarchyTabController = new HierarchyTabController(dataModel);
                Requirement req1 = new Requirement("ID", "21", 1, REQUIREMENT_TYPE.SOFTWARE);
                hierarchyTabController.updateTableRow(req1);
            }
    });
    return cell;
  }

这是控制器逻辑:

public void updateTableRow(Requirement r)
{
    REQUIREMENT_TYPE reqType = REQUIREMENT_TYPE.SOFTWARE;
    Requirement req1 = new Requirement("ID", "21", 1, reqType);
    ObservableList<Requirement> list = FXCollections.observableArrayList(req1);
    name.setCellValueFactory(new PropertyValueFactory<>("name"));
    description.setCellValueFactory(new PropertyValueFactory<>("description"));
    tableView.getItems().setAll(list);
    tableView.setItems(list);
}

每当我不从MouseEvent调用updateTableRow函数时,这都有效。但是,当我尝试调用控制器并更新MouseEvent中的值时,它无法正常工作。知道我做错了吗?

0 个答案:

没有答案