表视图中的JavaFX更新项

表视图中的JavaFX更新项,java,javafx-2,javafx,Java,Javafx 2,Javafx,我想用新的来更新TableView中的selectedItem。 这是我能想到的最接近的结果: private ObservableList<String> data = FXCollections.observableArrayList(); private TableView tableview; ... tableview.setItems(data); ... old = tableview.getSelectionModel().getSelectedItem();

我想用新的来更新TableView中的selectedItem。 这是我能想到的最接近的结果:

private ObservableList<String> data = FXCollections.observableArrayList();
private TableView tableview;

...
tableview.setItems(data);
... 

old = tableview.getSelectionModel().getSelectedItem();
new = "New"
data.remove(old);
data.add(new);
private observeList data=FXCollections.observearraylist();
私有TableView TableView;
...
tableview.setItems(数据);
... 
old=tableview.getSelectionModel().getSelectedItem();
new=“new”
数据删除(旧);
数据。添加(新);
如果我只做数据。删除(旧)(不在后面添加)selectedItem将从TableView中消失,如果我只做数据。添加(新)(不在前面删除)将添加新项。这没关系,但是当我在移除之后添加时(反之亦然),什么都没有发生


请亮一点。

我修复了它,更新了旧项目,并做了一个肮脏的把戏来更新tableview

old = new;

// dirty hack
tableview.getColumns().get(0).setVisible(false);
tableview.getColumns().get(0).setVisible(true);

这远不是一个优雅的解决方案,但目前它仍然有效。

您使用的是什么JavaFX版本?它让我想起了2.2中修复的一个老bug,我想知道一次修改是否解决了这个问题?int index=table.getSelectionModel().getSelectedIndex();数据集(索引,“新”)@SergeyGrinev我使用的是javafx.runtime.version:2.2.1-ea-b02。@Lesiak:我试过你说的,但我遇到了同样的问题。你可能想尝试旧的解决方法:
data.remove(旧);Platform.runLater(new Runnable(){public void run(){data.add(newItem);};