2012-10-31 90 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); 

遠不是一個優雅的解決方案,但它的作品暫時。

相關問題