JComboBox将按钮或可编辑字段与下拉列表组合的组件
在JComboBox中有addActionListener事件作用是:AIP中说到
   当作出选择时,ActionListener 将接收一个 ActionEvent。如果组合框可编辑,则在编辑停止时将激发 ActionEvent。
   也做出了测试就是点击编辑框的时候触发,达不到效果
在JComboBox中点击按钮的时候,下拉列表将显示出来,但是这个事件没找到什么办法来重写我现在的需求是点击按钮的时候,动态的刷新一下下拉框中的内容
   
    我的想法,首先就是找到点击按钮的事件,但是可惜没找到,并不能将其重写(请求高手帮忙找下)
    
    其次的想法就是,在面板中添加点击事件的方法,在按钮的区域点击触发(这是没有办法,也不怎么的合理)
  
    请求高手帮忙找下点击按钮的方法
  
    或者有更好的办法请发表哈,非常感谢

解决方案 »

  1.   

    不熟悉 Swing 的 API。但是正在研究 Swing Like MVC 的 LWUIT。
    LWUIT 中,一般来说业务模型变化了的时候,触发相关事件,监听器改变其他业务模型。这个时候视图就变化了。这使得 LWUIT 是动态的。不知道 Swing 下怎么样。希望可以供参考。
      

  2.   

    有事件监听啊!comboBox = new JComboBox();
    comboBox.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent arg0) {
    }
    });
      

  3.   

    或者用public void mouseEntered(MouseEvent e) {
    System.exit(0);
    }是鼠标移上去的事件监听还有好多 好好看看api 呵呵!
      

  4.   

    不是你的那个意思,我要的不是mouseListener而是,JComboBox组合框中点击按钮的那个事件
        因为点击按钮,LIST列表框就出来了
     mouseListener不能达到要求,我的要求就是点击JComboBox上面得按钮并且 动态刷新下list中的值
    因为JComboBox的值设置后不能动态的获得list值,由于是调用JNI方法,加上线程消耗的内存过大,所以最好就是用事件触发
      

  5.   

    LWUIT  没听过 但是谢谢顶
      

  6.   

    你要给LIST列表框中的内容加事件监听?  
      

  7.   


      comboBox = new JComboBox();
      comboBox .addItem(new String("dsfdsf"));
      comboBox .addItem(new String("dsfdsf2"));
      comboBox .addItem(new String("dsfdsf3"));
    comboBox.addItemListener(new ItemListener(){
        public void itemStateChanged(ItemEvent arg0) {
    comboBox .addItem(new String("123333"));//动态变化
    }
    });这个是 你选择了JComboBox下拉列表中的元素后的事件  是要这个么?
      

  8.   

    点击按钮的时候(到底是哪个按钮?是JComboBox本身?还是JComboBox下拉列表中的元素当做按钮?),动态的刷新一下下拉框中的内容 
      

  9.   

    JComboBox本来就是一个按钮加上一个可编辑框组成的,当然是JComboBox上的,就是点击,下拉列表就出来啦,就是所点的那个东西,就是按钮
      

  10.   

    终于明白你说什么意思了 ,你的意思是给JComboBox上的那个下拉三角形 加事件监听是吧?我也目前也没发现可以获得或重写事件的方法,不过实在没办法就 给放JComboBox的Jframe上加个addFocusListener(比如)焦点的坐标你事先算好 就是那个小三角形。。目前只有这个变通的方法了我在研究下!!
      

  11.   

    看来是我的表示能力真的有问题了,非常感谢你的关注,你的那个addFocusListener我试试,不知道你这种焦点事情能行不能行我试试吧
      

  12.   

    终于搞定啦先看代码
    Component xx=comboBox.getComponent(0);
                        xx.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent arg0) {
    System.out.println("我是那个小三角我被按了");

    } });我查到了 在comboBox中  那个按钮是第一个Component 所以 我Component xx=comboBox.getComponent(0);就得到了那个按钮的实例喽。剩下的 嘿嘿。。
      

  13.   

    我可是一个一个方法试出来的啊 getComponent是他继承java.awt.Container的方法 ,注意处理好异常,可能还有其他的办法在设置,呵呵我就不一个一个的试了,,你加油哈!!