2016-07-05 1 views
1

ObservaleListのラッパーを作成しようとしています。これは、すべての変更イベントを基になるリストから再送信する必要があります。残念ながら、削除された要素のインデックスはChangeから知ることはできません。削除された要素のリストをgetRemoved()で取得し、その番号をgetRemovedSize()で知ることのみが可能です。しかし、何も渡すことはありませんObservaleListBase#nextRemove()ListChangeListenerから削除された要素の過去のインデックスを知ることは可能ですか?<E>を変更しますか?

実現できますか?

+0

多分getFrom /月桃? – assylias

+0

「すべての変更を再送信する」とはどういう意味ですか? 'ObservableList'を実装して内部インスタンスを使用していますか?そのリストにリスナーを追加して、 'Change'オブジェクト自体で変更を再開できませんか? – Itai

+0

関連項目[* JavaFXで観測可能なリストを連結する方法*](http://stackoverflow.com/q/37524662/230513) – trashgod

答えて

1

インデックスを取得する場合はchange.getFrom()、インデックスを取得する場合はchange.getTo()を使用できます。たとえば、次のように

ListView<String> listView = new ListView<>(); 
listView.getItems().addAll("test", "test2", "test3", "test2"); 

listView.getItems().addListener((ListChangeListener<String>) c -> { 
    while(c.next()) { 
     System.out.println(String.format("From: %d, To: %d", c.getFrom(), c.getTo())); 
    } 
}); 

listView.getItems().removeAll("test2"); 

出力:

From: 1, To: 1 
From: 2, To: 2 
関連する問題