【发布时间】:2016-04-20 15:46:45
【问题描述】:
这是对旧发票示例的编辑。 我有两张桌子A和B, table_A 用于通过搜索加载所有项目或一个项目,然后选择并单击添加按钮将其添加到 table_B。 table_B 加载以前在发票中保存的旧项目。 * 奇怪的是,当我单击所有按钮时,所有按钮也加载到 table_A 和 table_B !加上旧发票的旧保存项目。 * 当我只删除加载旧发票项目的行和将这些项目设置为 table_B 的行时,一切正常。所以这部分的问题我希望有人向我解释。 左侧为 table_A,右侧为 table_B。 *** 在首先添加以下两行代码之前,提示表格工作正常。
// The code who makes unexpected issue:
invoiceList = DBForInvoices.invoiceItems(invoice.getID());
table_B.setItems(invoiceList);
// About tables
@FXML private TableView<Item> table_A; //Table Of Search
@FXML private TableColumn<Item, String> col_s_code;
@FXML private TableColumn<Item, String> col_s_name;
@FXML private TableView<Item> table_B; //Table Of Order Items
@FXML private TableColumn<Item, String> col_o_name;
@FXML private TableColumn<Item, String> col_o_quantity;
@FXML private TableColumn<Item, String> col_o_price;
@FXML private TableColumn<Item, String> col_o_warranty;
private void setItemsTables() {
// Setting columns of Search items.
col_s_code.setCellValueFactory(
new PropertyValueFactory<Item, String>("code_3"));
col_s_name.setCellValueFactory(
new PropertyValueFactory<Item, String>("name_4"));
// Setting columns of invoice items.
col_o_name.setCellValueFactory(
new PropertyValueFactory<Item, String>("name_4"));
col_o_quantity.setCellValueFactory(
new PropertyValueFactory<Item, String>("quantity_6"));
col_o_price.setCellValueFactory(
new PropertyValueFactory<Item, String>("price_7"));
col_o_warranty.setCellValueFactory(
new PropertyValueFactory<Item, String>("warranty_8"));
}
【问题讨论】:
-
如何创建表格?初始化它们时是否使用相同的列表?就像在 API 中一样:
TableView(ObservableList<S> items) -
当然不,它们在创建新发票时正常工作,一个要搜索的列表,其他发票项目/秒。
-
您能否提供有关如何创建表格以及如何设置其值的代码?
-
您没有在答案中包含任何重要部分。设置
cellValueFactorys 肯定与您的问题无关(除非您使用TableColumn的奇怪子类)。 -
感谢您的建议。