2016-04-01 22 views
0

TableView'u barındıran bir uygulamam var. kullanıcının belirli sütunun başlığını tıklayarak satırları sıralar zaman, ben, Bir JavaFX 8 öğelerini sıralamayı durdurma TableView

  • gerçek sıralamayı yapın,

    1. kaydet öğelerinin mevcut düzen için
    2. Kaydet öğelerin yeni düzen gerekir.

    Ben bu nokta başardı:

    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; 
    }); 
    

    Ancak bu çok sık ClassCastException atar. Sıralamadan önce ve sonra eşya permütasyonlarını kaydetmenin daha iyi bir yolu var mı?

    cevap

    1

    Sen ListChangeListenerdaha iyi bir yol :)

    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"); 
           } 
          } 
         } 
    
    }); 
    

    Umarım yardımcı olur kullanarak dinleyebilir olabilir.

    +1

    Yaptı. Teşekkür ederim! :-) – coderodde