2013-11-24 64 views

回答

0

當您在列表開頭刪除一個條目時,這些項目將向後移動。向後移動項目也會更改其索引。這就是爲什麼當你調用data.remove(0)時,之前的data.get(1)將變成data.get(0)。你可以做的,然後是一樣的東西:

@Override 
public void handle(ActionEvent arg0) { 
    int numberOfItemsToRemove=4; 
    for(int i=0;i<numberOfItemsToRemove;i++){ 
     data.remove(0); 
    } 
} 

編輯的評論:
另一種解決辦法是開始從最高的索引中刪除。比方說,你要與指標1,6刪除項目,和9這樣,你會做這樣的事情:

@Override 
public void handle(ActionEvent arg0) { 
    data.remove(9); 
    data.remove(6); 
    data.remove(1); 
} 
+0

謝謝你的迴應。當然,當我想刪除索引1,2,3,4 ... 但是,當我想刪除,例如,1,6,9 ...它不起作用。 – dakar

+0

嗨,請看我編輯的答案。 –

+0

現在完美了! :) – dakar

0

刪除數據後(0),數據(1)變爲數據(0),數據( 2)成爲數據(1)等。 我看到它剛剛回答,但我還要提到,

對於ObservableList,您有一個刪除(from,to)方法,因此您可以執行data.remove(0,4);

對於常規列表中,您可以刪除一個集合,因此,如果你把所有的項目集合中刪除,那麼你做data.removeAll(list);

+0

謝謝你的迴應。當我把所有項目刪除在一個集合 - 它的工作方式與以前一樣... – dakar

+0

@達喀爾,對不起,它是removeAll(列表) – brian

0

試試這個...它的工作..

btn.setOnAction(new EventHandler<ActionEvent>() { 

     @Override 
     public void handle(ActionEvent t) { 


       data.remove(0); 
       data.remove(1); 
       data.remove(2); 
       table.setItems(data); 

     } 
    }); 
+0

謝謝你的迴應,但它不工作。 – dakar

+0

@達喀爾,但我檢查它..它從表中刪除索引號0,2,4行...你能找到別的嗎? –