我刚刚创建了一个TablView,我成功地将数据放入其中。问题是当我双击一个单元格(要更新)时,它会显示更新的数据,但当我单击离开时,更新的单元格会显示旧数据!
这里的代码:
table = new TableView<InvoiceLine>();
table.setEditable(true);
Callback<TableColumn, TableCell> cellFactory =
new Callback<TableColumn, TableCell>() {
public TableCell call(TableColumn p) {
return new EditingCell();
}
};
ObservableList<InvoiceLine> data = FXCollections.observableArrayList(invoice_Lines);
table.setItems(data);
designationCol = new TableColumn("Designation");
designationCol.onEditCommitProperty();
designationCol.setCellValueFactory(new PropertyValueFactory<InvoiceLine, String>("invoicelineDesignation"));
designationCol.setCellFactory(cellFactory);
designationCol.setOnEditCommit(new EventHandler<CellEditEvent<InvoiceLine, String>>() {
@Override
public void handle(CellEditEvent<InvoiceLine, String> t) {
((InvoiceLine) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setInvoicelineDesignation(t.getNewValue());
System.out.println(t.getNewValue());
}
});
TableColumn quantiteCol = new TableColumn("Quantite");
quantiteCol.setCellValueFactory(
new PropertyValueFactory<InvoiceLine, String>("invoicelineQuantity"));
quantiteCol.setCellFactory(cellFactory);
quantiteCol.setOnEditCommit(
new EventHandler<CellEditEvent<InvoiceLine, String>>() {
@Override
public void handle(CellEditEvent<InvoiceLine, String> t) {
((InvoiceLine) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setInvoicelineQuantity(t.getNewValue());
System.out.println(t.getNewValue());
}
});
TableColumn puCol = new TableColumn("Prix Unitaire");
puCol.setCellValueFactory(
new PropertyValueFactory<InvoiceLine, String>("invoicelineUnitPrice"));
puCol.setCellFactory(cellFactory);
puCol.setOnEditCommit(
new EventHandler<CellEditEvent<InvoiceLine, String>>() {
@Override
public void handle(CellEditEvent<InvoiceLine, String> t) {
((InvoiceLine) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setInvoicelineUnitPrice(t.getNewValue());
System.out.println(t.getNewValue());
}
});
TableColumn totalCol = new TableColumn("Total");
totalCol.setCellValueFactory(
new PropertyValueFactory<InvoiceLine, String>("invoicelineAmount"));
totalCol.setCellFactory(cellFactory);
totalCol.setOnEditCommit(
new EventHandler<CellEditEvent<InvoiceLine, String>>() {
@Override
public void handle(CellEditEvent<InvoiceLine, String> t) {
((InvoiceLine) t.getTableView().getItems().get(
t.getTablePosition().getRow())).setInvoicelineAmount(t.getNewValue());
System.out.println(t.getNewValue());
}
});
table.getColumns().addAll(designationCol, quantiteCol, puCol, totalCol);
centerSplitPane.setBottom(table);
}
});
有人能帮帮我吗?厚度
如果您遵循了TableView的官方教程,请在单元格的编辑模式下按ENTER键提交更改。或者,通过添加以下内容来编辑源代码:
textField.focusedProperty().addListener(new ChangeListener<Boolean>() {
@Override
public void changed(ObservableValue<? extends Boolean> arg0, Boolean arg1, Boolean arg2) {
if (!arg2) {
commitEdit(textField.getText());
}
}
});
进入createTextField()
方法。这将在text Field
失去焦点时提交更改。
你好 我正在使用JavaFXSDK开发一个程序。我想要一个像C#那样的消息框: 我希望使用JavaFXSDK有这样的功能。非常感谢回答。
我的应用程序是基于Swing的。我想介绍JavaFX,并将其配置为在辅助显示器上呈现场景。我可以使用JFrame来保存JFXPanel,JFXPanel可以保存JFXPanel,但我希望使用JavaFX API来实现这一点。 将com.sun.glass.ui.application子类化并使用application.launch(这)不是一个选项,因为调用线程将被阻塞。 编辑:结论 问题:非平凡
我有一个问题与primeface数据表。我有一个数据与一些条目和一个列与一个按钮内。如果按钮被按下,一个弹出窗口打开与另一个数据表。第二个数据表中的条目取决于行中的按钮被按下。 Bean2 问题是弹出式数据表中没有列出任何条目,尽管在db查询之后的列表中有一些条目。 有没有办法修复这个bug?提前感谢! 更新1:
我有一个表单,其中用户创建了一个编码问题。在表单中,可以通过输入和输出文本框添加示例测试用例。用户可以单击按钮添加新的测试用例。现在我有一个state对象,它保存所有表单数据formObj,其中有一个示例_test_cases字段,我想保存一个对象数组,比如:[{input:,output::}]。 我遇到的问题是更新此阵列。我需要能够在每次添加测试用例时将一个新对象连接到它。然后在文本框更改时更
Flarum 正处于测试阶段,有关如何更新的说明将在每次 版本发布公告中公示。
如果你想和社区以及开发版的 Requests 保持最新的联系, 这有几种方式: GitHub 最好的方式是追踪 Requests 开发版本的 GitHub 库. Twitter 我经常推送关于 Requests 的新功能和新版本. 关注 @kennethreitz 即可获得更新。 Release History dev Improvements Bugfixes 2.18.1 (2017-06-1
和模型新增一样,更新操作同样也会经过修改器、自动完成以及模型事件等处理,并不等同于数据库的数据更新,而且更新方法和新增方法使用的是同一个方法,通常系统会自动判断需要新增还是更新数据。 查找并更新 在取出数据后,更改字段内容后使用save方法更新数据。这种方式是最佳的更新方式。 $user = User::get(1); $user->name = 'thinkphp'; $user->em
Yearning采用自动表结构同步 无需手动更新表结构。只需停止原服务并替换安装包后重新启动即可 在一些特殊的升级情况中(破坏性变更)需要手动进行数据同步操作.如在版本更新公告中并无提示破坏性升级则无视以下命令! ./Yearning migrate