首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JComboBox 获取箭头部分或者怎么为箭头部分添加监听事件

2012-04-23 
JComboBox 获取箭头部分或者如何为箭头部分添加监听事件?如题:当我把鼠标指针移到该JComboBox的箭头部分时

JComboBox 获取箭头部分或者如何为箭头部分添加监听事件?
如题:当我把鼠标指针移到该JComboBox的箭头部分时,如何捕获鼠标指针离开了该JComboBox的整个组件(或者只是箭头部分)?
  我尝试为该组件添加如下事件:
 

Java code
 MouseListener mouseListener=new MouseListener(){            @Override            public void mouseClicked(MouseEvent arg0) {                // TODO Auto-generated method stub                            }            @Override            public void mouseEntered(MouseEvent arg0) {                // TODO Auto-generated method stub                            }            @Override            public void mouseExited(MouseEvent arg0) {                // TODO Auto-generated method stub                CalendarHack.this.removeAll();                CalendarHack.this.repaint();                setUpButton(CalendarHack.this.frame);                setDate_Control();                CalendarHack.this.updateUI();            }            @Override            public void mousePressed(MouseEvent arg0) {                // TODO Auto-generated method stub                            }            @Override            public void mouseReleased(MouseEvent arg0) {                // TODO Auto-generated method stub                            }                    };

  但其只能捕获鼠标指针离开的左边部分,对于右边部分的箭头组件无法捕获。
  另外,PopupMenuListener事件没有涉及鼠标移动的事件。
  哪位朋友、大侠能帮忙看下?
  鞠躬了,谢谢!

[解决办法]
有个办法,不过比较麻烦
楼主看一下 BasicComboBoxUI 类的
public void configureArrowButton() 方法
这个里面就是给右边那个按钮注册事件的地方

你需要做的就是,重写一个 BasicComboBoxUI 或 MetalComboBoxUI
然后重写里面的 configureArrowButton 方法
在这里,自己再给 arrowButton 注册一个监听器

另外别忘了在 
public void unconfigureArrowButton() 方法里注销这个监听器

热点排行
Bad Request.