2016-04-19 83 views
0

我需要知道如何捕獲從TableView和行的索引中刪除行時發生的事件。在此時從表視圖中刪除一行時,會調用TableView.getSelectionModel()。clearSelection()方法。但我想要的是選擇表視圖中可用的最後一個索引。從表視圖中刪除行時的事件處理程序

Tableview.getSelectionModel()。clearAndSelect()不是一個選項,因爲有時會自動刪除一行。

問候

回答

2

對於類型的表,例如,Person

import javafx.collections.ListChangeListener.Change ; 

// .... 

TableView<Person> table = ... ; 

table.getItems().addListener((Change<? extends Person> c) -> { 
    while(c.next()) { 
     if (c.wasRemoved()) { 
      int numRemoved = c.getRemoved().size(); 
      int index = c.getFrom(); 
      System.out.println(numRemoved + " items removed from table at index "+index); 
     } 
    } 
}); 

ListChangeListener.Change documentation的描述在各種情況下通過c.getFrom()c.getTo()c.wasRemoved()c.getAdded()等返回的值。

+0

它可以工作,但正確的表達式是table.getItems()。addListener((ListChangeListener.Change <?extends Person> c) - > {});請編輯。問候。 –

+0

這只是取決於你的進口.... –

+0

好吧,我明白了。謝謝 !! –

相關問題