0
当我尝试对向其添加新元素之后开始添加新元素的javafx ListView对象进行排序时,我遇到了一些奇怪的行为。 用于排序的代码是ListView对添加的成员进行排序,就好像它们是原始列表后面的另一个排序列表一样
movieList.getItems().add(newMovie);
if(mainController.getListingOrder().equals("title"))
{
movieList.getItems().sort(Movie.getTitleComparator());
}
else
{
movieList.getItems().sort(Movie.getYearComparator());
}
的getTitleComparator()方法是如下
public static Comparator<Movie> getTitleComparator()
{
return new Comparator<Movie>()
{
@Override
public int compare(Movie movie1, Movie movie2)
{
return movie1.getTitle().compareTo(movie2.getTitle());
}
};
}
三个以下图片应该有希望说明我有这个问题。
任何元素之前加入:
后1个元素加入:
加入三种元素之后:
正如您所看到的,添加的元素将按字母顺序相互排序,但不会与列表中已有的元素进行排序。有什么办法可以让所有的元素都按字母顺序排序,而不是像两个单独排序的数组一样放在一起?
您发布的确切SNIPPIT你没有工作,而是因为你的评论我想:'movie1.getTitle()与compareToIgnoreCase(movie2.getTitle()); ' 它工作。非常感谢你! –