2017-04-21 1362 views
0

我有一個tableview,我想要做的是基於具有環境類型的單選按鈕; QA,DEV,PROD等。它向表格視圖添加可觀察列表,並且如果您單擊不同的單選按鈕,它將清除以前環境的列表,並在tableview中顯示關聯的可觀察列表。JavaFX tableview清除集合

我的問題是,因爲obs列表通過引用傳入tableview,所以tableview.getItems()。clear()清除tableview和列表。我試圖做到這一點 - 它只清除tableview中顯示的內容,而不是原始列表。

ObservableList<BarFile> devCheckboxList = FXCollections.observableArrayList(); 
//List gets populated with files elsewhere 
        switch (chk.getText()) { 
        //Check to see which checkbox is selected 
        case "DEV": 
         tableView.getItems().clear(); 
         System.err.println("DEV IS TRUE"); 
         environmentCheck("DEV"); 
         //Add to listview 
         tableView.setItems(devCheckboxList); 
         break; 
} 

Populated Tableview

Tableview when environment is switched

回答

1

如果你不想清除現有的名單,只是不叫clear()

ObservableList<BarFile> devCheckboxList = FXCollections.observableArrayList(); 
//List gets populated with files elsewhere 

    switch (chk.getText()) { 
    //Check to see which checkbox is selected 
    case "DEV": 
     // tableView.getItems().clear(); 
     System.err.println("DEV IS TRUE"); 
     environmentCheck("DEV"); 
     //Add to listview 
     tableView.setItems(devCheckboxList); 
     break; 

} 

由於要更換表的整個無論如何,對clear()的呼叫對錶中顯示的內容沒有影響。

+0

哇我很笨,謝謝你。 –