2012-10-31 64 views
0

我想用新的更新TableView中的selectedItem。 这是最接近我已经能想出:JavaFX在TableView中更新项目

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

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

old = tableview.getSelectionModel().getSelectedItem(); 
new = "New" 
data.remove(old); 
data.add(new); 

如果我这样做只是data.remove(旧)(无后加入)从TableView中的selectedItem属性自败,如果我只是做data.add(new)(不删除之前)添加新项目。没关系,但是当我在删除之后进行添加(反之亦然)时,没有任何反应。

请对此发表一些看法。

+0

您使用的是什么JavaFX版本?它让我想起了2.2 –

+0

中修复的一个旧bug,我想知道是否一次性改变解决了这个问题? int index = table.getSelectionModel()。getSelectedIndex(); data.set(index,“New”); – Lesiak

+0

@SergeyGrinev我正在使用javafx.runtime.version:2.2.1-ea-b02。 – nailujed

回答

0

我修正它更新旧项目,并做一个肮脏的技巧来更新tableview。

old = new; 

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

远不是一个优雅的解决方案,但它的作品暂时。

相关问题