jtable中设置某一列我combobox,并实现了可编辑,但我遇到个问题:可编辑状态手动输入不按enter键combobox清除当前我输入的值,必须离开jtable或者按了enter键才会显示该值。请教一下这是为什么? 应当如何修改呢

解决方案 »

  1.   

    我是加了一个Ancestorlistener监听器,但是出现编写某一个下拉框数据切换到宁一个是把值带过去了不知道怎么解决
      

  2.   


    jcombobox 先设置可编辑,然后对getEdit()添加一个监听器,然后把监听到的内容加入item中。
      

  3.   

    getEditor()
      

  4.   

    是对jcombox添加吗?
      

  5.   


    jcombobox.getEditor().addactionlistener(){};可以用内部匿名类形式添加。
      

  6.   


    jcombobox.getEditor().addactionlistener(){};可以用内部匿名类形式添加。不起效果啊,是要我在acenser监听里面搞吗?我在外面加这个事件根本进不去啊
      

  7.   


    jcombobox.getEditor().addactionlistener(){};可以用内部匿名类形式添加。不起效果啊,是要我在acenser监听里面搞吗?我在外面加这个事件根本进不去啊我的代码大概是这样的
    cobx初始化
    cbox.geteditor().addActinglinster(new actional(){...})
    tablecelleditor editor = new defaultcelleditor(cbox)
    column.setcelleditor(ditor)
      

  8.   

    差不多下面这样,下面用了lambda表达式替代了匿名类效果一样的comboBox.getEditor().addActionListener(e -> {
          Object newItem = comboBox.getEditor().getItem();
          DefaultComboBoxModel d = (DefaultComboBoxModel) comboBox.getModel();
          d.addElement(newItem);
          d.setSelectedItem(newItem);    });
      

  9.   

    你这个事件是enter后才触发啊
      

  10.   

    你总要有一个触发点啊,不然程序怎么知道你输入完成了,实时开销太大了。
    我现在的问题就是加了一个TableAncestorListener后就可以实现实时输入,只是当点击第一个combox输入后点击下一个直接把值带到了下一个combox里面,想要解决这个问题,宁外这种情况是jdk8的问题用jdk6就没有这个问题
      

  11.   


    你可以试试设置离开监听器,combobox内容初始化 设置为“”。
      

  12.   

    TableAncestorListener你用这个容器改变监听器来监听combobox内容改变,我总觉得有点张冠李戴。
    起码要加在combobox上啊!
      

  13.   

    我就是要去改变这个table的值啊
      

  14.   

    我也重写了defaultCellEditor也实现了但是还是那个问题 就是 填写一个combox值后再跳到下一个combox直接把值带过去了不知道怎么去解决
      

  15.   

    我就是要去改变这个table的值啊当然要加在combo上,你加在table上哪个combo的变化对table来说都是一样的,监听没有中断,所以结果会被带到下一个combo,
      

  16.   

    但是当combox里面有值时就不会出错