关于下拉框列表监听的最新发现

 

最近在做一个通信项目,名唤"洽洽谷",是一个简单的仿QQ的聊天工具。

好友列表是加在下拉框里面的。为了选择时获取下拉框的选项,给下拉框加了监听器。曾经尝试了3种监听器,都达不到我所要的效果,最后尝试了PopupMenuListener,感觉蛮好。

在监听器里面,我要获取在下拉框中选择的选项,尝试的4种监听器:

1.    ActionListener

效果:当下拉框的第一个选项有更新时,还没有去选择选项,就已经获取了下拉框的

第一项作为选择选项。选项可以连续选择

 

2. MouseListener

效果:选择时,没有反应。

 

3. ItemListener

效果:当被选择项有变化时,才得到选择的项 目(即选择相同的选择,不触发监听事件)。

问题来了:当列表更新时,选项下拉框选项会改变,会触发监听事件。

       举个例子:我在线,你刚刚上线,我的好友列表中就会多一个你,然而你是后加的,就被添加到下拉框的第一栏,致使第一栏的选项被改变,该栏的选项就会被作为选择的选项。

 

4. PopupMenuListener

该监听器名唤:弹出菜单侦听器 

效果:只有选择了选项才会得到选择的项目。即使列表有更新也没有关系。

 

jb是一个JComboBox对象

 

jb.addPopupMenuListener(new PopupMenuListener(){
			public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
			}
			public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
				String name=(String) jb.getSelectedItem();
				name=name.trim();//得到下拉框中选中人的名字
				ComFrame cf=new ComFrame(conn,user,name);//获得与这个人的聊天界面
				new Thread(cf).start();//创建一个线程
			}
			public void popupMenuCanceled(PopupMenuEvent e) {
			}
		});
	
 

 

 

你可能感兴趣的:(下拉框)