各位大师好:
小弟有一难处相求。
在关于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,但是再次点下拉菜单时就好了。我认为是画面刷新事件被数据更新事件堵塞了。但是无法找到问题的根本所在。