2013-02-07 3 views
2

JavaFX ListView 항목에 문제가 있습니다. 것은 런타임에 다시 정렬 할 수있는 방법을 찾을 수 없다는 것입니다. 마우스로 항목을 끌기 만하면됩니다. 또한 ObservableList 밑에있는 항목 순서를 변경하고 싶습니다.javafx 목록보기 항목 순서

어떻게이 작업을 수행 할 수 있습니까?

+2

http://blog.ngopal.com.np/2012/05/06/javafx-drag- and-drop-cell-in-listview/ – invariant

+2

[JavaFx에서 재정렬 기능이있는 TableView를 만드는 방법]에서 끌어서 놓기를 통해 ListView에 항목을 재정렬하는 몇 가지 샘플 코드가 있습니다 (http://stackoverflow.com/questions/20412445/re-order-able-tableview-in-javafx)를 사용하십시오. – jewelsea

답변

0

당신은 당신의 목록보기 항목의 순서를 변경 언제든지 ListView에의 부하의 모델을 형성하는 ObservableList의 순서를 변경할 수 있습니다 ...

... 예를 들면 다음과 같습니다에 비교기를 사용하는 "TYPE은"당신의 ListView 인스턴스의 유형과 일치하는 반면 ...

javafx.scene.control.ListView<TYPE> listView; // Your ListView, defined somewhere else. 

java.util.Collections.sort(listView.getItems(), new java.util.Comparator<TYPE>() { 
    @Override 
    public int compare(TYPE o1, TYPE o2) { 
     // Implement your comparator here. 
    } 
}); 

: 재 주문하세요 목록보기의 내용 당신은 같은 것을 사용할 수 있습니다.

목록보기 항목 정의에 대한 자세한 내용은 http://docs.oracle.com/javafx/2/api/javafx/scene/control/ListView.html#itemsProperty을 참조하십시오. 원하는대로 항목을 추가, 제거 및 셔플 할 수 있으며 ListView는 자동으로 모양을 조정합니다 ...

+1

예, 감사합니다. 문제는 마우스로 드래그하여 아이템을 다시 정렬해야한다는 것입니다. 코드 로직이 아닙니다! 이 블로그 게시물 http://blog.ngopal.com.np/2012/05/06/javafx-drag-and-drop-cell-in-listview/이 솔루션은 저에게 효과적이지만, 그런 일에 정말로 복잡합니다. – greengold