您的位置:首页 > 产品设计 > 产品经理

关于PopupMenuListener的一些疑问

2010-01-08 16:41 155 查看
各位大师好:

小弟有一难处相求。

在关于JComboBox的更新数据处理的时候,我注册了这么个监听事件。

 filterComboBox_.addPopupMenuListener(new PopupMenuListener() {

            public void popupMenuCanceled(PopupMenuEvent e) {

            }

            public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {

               

            }

            public void popupMenuWillBecomeVisible(PopupMenuEvent e) {

                for ( int i = 0; i < tmpList.size(); i++ ) {   

                ComConditionData tmp = tmpList.get(i);

               

                filterComboBox_.addItem(tmp);

                }//下拉框出现前更新数据

                if ( filterComboBox_.getItemCount() > ComFilterConst.MAX_COUNT ) {

                     filterComboBox_.setMaximumRowCount(ComFilterConst.MAX_COUNT);

                } else {

                    filterComboBox_.setMaximumRowCount(filterComboBox_.getItemCount());

                }

                filterComboBox_.repaint();

                filterComboBox_.validate();

                //刷新ComboBox

            }

        });

但是问题出来了。无论你怎么刷新,combobox总是保持前一次的状态,虽然数据更新了。但是碰上删除数据,combobox就会多一行空选项,但选不到。添加数据,combobox就是多一个scrollbar,但是再次点下拉菜单时就好了。我认为是画面刷新事件被数据更新事件堵塞了。但是无法找到问题的根本所在。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: