【发布时间】:2015-04-08 10:28:56
【问题描述】:
我有一个用 JavaFX 编写的表,用户可以选择编辑其中的一列。当对单元格进行编辑时,我尝试根据新文本重命名一些内部对象。如果重命名失败,我会发出通知 + 弹出错误对话框,然后我想将原始文本恢复到该字段中。出于某种原因,这让我陷入了无限循环的错误弹出窗口。
我目前从原作者那里得到的代码如下:
mNameColumn.setOnEditCommit(
new EventHandler<TableColumn.CellEditEvent<StateDefinition, String>>() {
@Override
public void handle(TableColumn.CellEditEvent<StateDefinition, String> event) {
try {
someObject.rename(((StateDefinition) event.getTableView().getItems().get(event.getTablePosition().getRow())).getState(), event.getNewValue());
} catch (MYException ex) {
MyNotificationCollector.addNotification("Failed renaming: " + ex.getLocalizedMessage(), NotificationType.SYSTEM_WARNING);
//popup error message code here
// Need to revert the cell's text to the previous value here...
}
}
});
知道我做错了什么吗?如何在不再次调用单元格编辑提交事件的情况下恢复旧值?
谢谢, 奥伦
【问题讨论】:
-
与旧问题相同的问题:stackoverflow.com/questions/20798634/…(作为副本关闭)
标签: java javafx tablecolumn