有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在GXT中禁用DualListField的“添加选定”按钮?

我正在一个Java6项目中使用GWT2.0.0。我正在使用的功能允许用户在DualListField中选择项目,但只允许特定数量的项目。因此,我要求一旦达到某个限制(即只能选择x个项目),DualListField按钮栏中的“添加选定项”和“添加所有项”按钮将被禁用。以前有人尝试过吗?除了定制DualListField,还有更简单的方法吗

谢谢


共 (1) 个答案

  1. # 1 楼答案

    创建从DualListField扩展的新XY类。在这个XY类中,定义如下内容:

    public clas XY <D extends ModelData> extends DualListField<D>{
        public static final int leftButton = 0x1;
        public static final int rightButton = 0x2;
        public static final int allLeftButton = 0x3;
        public static final int allRightButton = 0x4;
        public static final int upButton = 0x5;
        public static final int downButton = 0x6;
    
    List<Integer> buttonsToRemoveList;
    
    public CustomDualListField(List<Integer> buttonsToRemoveList){
        super();
        this.buttonsToRemoveList = buttonsToRemoveList;
    }
    
        @Override
        protected void onRender(Element target, int index) {
            super.onRender(target, index);
    
            if(buttonsToRemoveList != null){
                for(Integer val:buttonsToRemoveList){
                    switch(val.intValue()){
                        case leftButton:{
                            buttonBar.remove(left);
                            break;
                        }
                        case rightButton:{
                            buttonBar.remove(right);
                            break;
                        }
                        case allLeftButton:{
                            buttonBar.remove(allLeft);
                            break;
                        }
                        case allRightButton:{
                            buttonBar.remove(allRight);
                            break;
                        }
                        case upButton:{
                            buttonBar.remove(up);
                            break;
                        }
                        case downButton:{
                            buttonBar.remove(down);
                            break;
                        }
                    }
                }
            }
        }
    }
    

    通过这种方法,您可以配置将显示的按钮