0

嘿伙计们,我是 ZK 框架的新手,稍后我在视图中对列表框进行排序,我将列表框传递给控制器​​,我需要用户选择的项目,但在模型中,项目与排序同步,但在 getSelection数组未与使用原始数据插入的排序同步这里是代码。

public void createPDFFromModel(Listbox list,String ref){                
    BindingListModelList model = (BindingListModelList)list.getModel();
    for(int i=0;i<model.size();i++){
        System.out.println((((ZamoraListitemAdapter)model.get(i)).getName()));
    }  
    System.out.println("-------------------------------------------");
    //Data Printed OK.
    java.util.ArrayList<ZamoraListitemAdapter>selections = new java.util.ArrayList<ZamoraListitemAdapter>(model.getSelection());
    for(int i=0;i<selections.size();i++){
        ZamoraListitemAdapter clazz = (ZamoraListitemAdapter)selections.get(i);
        System.out.println(clazz.getName());
        //Out of sync with model and with sorting 
    }

我的问题是如何在 getSelection 模型中排序后获得项目的顺序。我正在使用 ZK 5.2.8

4

2 回答 2

0

您可以在创建后进行排序。 也许还有其他/更好的解决方案,但是如果 您需要更多帮助,您必须写下您尝试实现的目标。selections

回复评论

我的意思是

ArrayList<ZamoraListitemAdapter>selections = 
new ArrayList<ZamoraListitemAdapter>(model.getSelection());
Collections.sort(selections);

selections您选择的所有项目也是如此List,只要
您以相同的方式比较这些项目,它们的顺序就应该正确

如果您的意思是重新排序而不是排序...

对我来说,排序意味着它是自动的,由算法完成。
例如,重新排序意味着您拖动对象。

如果您的意思是重新排序,而您Model无法知道是否
选择了某个项目,那么您可能做错了什么。
Cos zk 有两个类ListModelList, 它们实现了选择行为所需的所有方法,如果程序员想要一个可选的,其中一个固有的,自定义应该, 因为这是最简单的方法。AbstractListModel

ModelModel

你也应该阅读这个

于 2013-02-14T14:22:46.070 回答
0
model.getSelection()

返回一个集合(无顺序),而不是使用

model.getInnerList()

返回 ListModeList

于 2013-02-14T18:26:23.307 回答