GWT列表框在重新选择值时检测

GWT列表框在重新选择值时检测,gwt,listbox,Gwt,Listbox,我在使用GWT列表框时遇到问题。我有一个例子,用户从列表框中选择一个值,但如果他们更改相关字段中的数据,该值可能会失效。要验证列表框,用户必须选择一个新值,或者通过再次选择相同的值来确认其旧选择。我不知道如何确定他们是否选择了相同的值,以便我可以重新设置列表框的样式,使其看起来有效 valueChanged处理程序仅检测是否选择了新值。clickHandler和focusHandler触发频率过高,因为它们在用户未选择值时触发。有什么想法吗?您可以通过以下方式改进clickHandler:

我在使用GWT列表框时遇到问题。我有一个例子,用户从列表框中选择一个值,但如果他们更改相关字段中的数据,该值可能会失效。要验证列表框,用户必须选择一个新值,或者通过再次选择相同的值来确认其旧选择。我不知道如何确定他们是否选择了相同的值,以便我可以重新设置列表框的样式,使其看起来有效


valueChanged处理程序仅检测是否选择了新值。clickHandler和focusHandler触发频率过高,因为它们在用户未选择值时触发。有什么想法吗?

您可以通过以下方式改进clickHandler:

     ignoreClick = true;
     lastSelection =  -1 ;
            ....
    listBox.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            if (!ignoreClick) {
                lastSelection = listBox.getSelectedIndex();
            }
            ignoreClick = !ignoreClick;     
        }
    });

我尝试了它,只有在您选择了某个项目时才会触发该事件。但是你应该重新考虑你的用户界面,就像上面所说的

非常糟糕的用户界面想法。你说的“非常糟糕的想法”是什么意思。在设计上我别无选择。有没有更好的方法来实现相同的功能?我将尝试在中编辑一些代码,但可能没有多大帮助。即使在您描述它的时候,这种设计也非常混乱。用户必须再次选择相同的值?!一个更好的选择是显示一个小对话框,解释选择无效的原因,然后询问用户想要做什么,例如“您还想选择这个值吗?”我最终实现了这个方法,效果很好。这是我正在修复的一个缺陷,所有的代码都已经准备好了。我本来不会写得这么奇怪的,但有人写了,我现在不能重写整页。谢谢你的帮助!