当您将一个项目添加到一个ObservableList中(该列表显示在TableView中)时,如何在添加重复项目时更新行?
例如,考虑一个包含三个列的TableView:项目、数量和价格。这可以通过以下代码来实现:
@FXML
TableColumn itemColumn;
@FXML
TableColumn qtyColumn;
@FXML
TableColumn priceColumn;
TableView orderTable;
ObservableList orderList = FXCollections.observableArrayList();
public void addItem(String a, int b, Double c) {
Item entry = new Item(a, b, c);
currentOrderTable.getItems().add(entry);
}
@Override
public void initialize(URL location, ResourceBundle resources) {
itemColumn.setCellValueFactory(new PropertyValueFactory<Item, Integer>("item"));
qtyColumn.setCellValueFactory(new PropertyValueFactory<Item, String>("quantity"));
priceColumn.setCellValueFactory(new PropertyValueFactory<Item, Double>("price"));
orderTable.setItems(orderList);
}
在其当前形式中,您可以得到如下表:
项目 --------- 数量 ----- 价格。
炒面----- 1 ----------- 4.20。
泰国-------- 1 ----------- 5.50。
炒面----- 1 ----------- 4.20。
泰国-------- 1 ----------- 5.50。
但我要找的是这样一张桌子:
项目------数量------价格<炒面----1----8.40<泰文----1----11.00。
扫描表中的项目以查看是否存在现有项目:
public void addItem(String itemName, int quantity, Double price) {
Item entry = currentOrderTable.getItems().stream()
.filter(item -> item.getItem().equals(itemName))
.findAny()
.orElseGet(()-> {
Item newItem = new Item(itemName, 0, 0);
currentOrderTable.getItems().add(newItem);
return newItem ;
});
entry.setQuantity(entry.getQuantity() + quantity)
entry.setPrice(entry.getPrice() + price);
}
当我添加一个部件时,它会添加到arraylist中,但是tableview不会更新。我在顶部有一个搜索字段,如果我按下按钮,它会显示新项,但我所尝试的任何东西都不会让表刷新并在添加新项时显示新项。 这是主控制器 inventory类有一个零件的静态arraylist 编辑: 如果所有工作都在主控制器内完成,所有工作都很好。例如,如果我删除上面的整个搜索代码,并将其替换为以下两行(按下后在主控制器上
这是我在ionic应用程序中使用的代码,用于从FireBase中提取产品。 一个例子: 如果我有这样的项目列表: null 项目1 项目2 项目3 项目4 项目1 项目2 项目3 项目4 我不知道它为什么这样做,任何帮助将是非常感谢的。
我的TableView没有更新,我需要一个监听器吗?(m是我的模型) 在一个新的阶段,我在我的模型列表中添加了一些Mitarbeiter 但是另一个阶段的TableView没有更新新数据。最后,观察列表不是指向模型中的ArrayList吗?
以下是我的现状: 我收到了一长串数据,其中包含名称和值,以及相应的值ID。ID的数量对于呈现的数据可能会有所不同,但对于整个集合来说是恒定的。(这个集合每个名称正好有2个值)。问题是,名称重复,但ID不重复。然后我的问题变成了, 如何转换如下所示的表: 更像这样: 注意:我很难想出这个问题的标题。
我已经看到了这个答案,并且正在使用它所建议的解决方案,但仍然得到相同的错误。 我有一个对用户表有外键约束的代理表,这是代理表: 这是我的实体: 现在,我想为现有用户添加一个新代理: <代码>\u上下文。SaveChanges() 行引发以下异常: "无法添加或更新子行:外键约束失败(\"dbName\".\"agent\", CONSTRAINT\"FK_Agency_User\"FOREIGN
我已经用FXML定义了一个tableview。它类似于以下内容: Action列将在每一行中包含带有文本“Delete”的按钮。我有两个问题: 如何将此删除按钮添加到JavaFX中的每一行最后一个单元格? 如何获取已单击“删除”按钮的行的索引?(以便删除该行或进行其他事件处理工作)