2016-04-01 18 views
0

私はTableViewをホストするアプリケーションを持っています。ユーザーが特定の列のヘッダーをクリックして行をソートするたびに、私は JavaFX 8 TableViewのアイテムの並べ替えを傍受する

  • 、実際のソートを行います
    1. 保存項目の現在の注文に必要な項目の新しい秩序を保存します。

  • は、私はこれを発見することができました:

    this.tableView.sortPolicyProperty().set(t -> { 
         System.out.println("saving source order"); 
         ... // Saving 
         FXCollections.sort(tableView.getItems(), t.getComparator()); 
         System.out.println("saving target order"); 
         ... // Saving 
         return true; 
    }); 
    

    しかし、これはかなり頻繁にClassCastExceptionをスローします。並べ替えの前と後に項目並べ替えを保存するより良い方法はありますか?

    答えて

    1

    あなたがListChangeListener良い方法 :)

    tv.getItems().addListener(new ListChangeListener<T>(){ 
          @Override 
          public void onChanged(javafx.collections.ListChangeListener.Change< 
                ? extends T> c) {   
          while(c.next()){ 
           if(c.wasPermutated()){ 
            System.out.println("is permuated"); 
           } 
          } 
         } 
    
    }); 
    

    はそれが役に立てば幸いを使用して、それを聞くことができます。

    +1

    でした。ありがとうございました! :-) – coderodde

    関連する問題