java - 自动完成 JComboBox (Java2S) 在更改事件上设置错误的值

标签 java swing autocomplete jtable jcombobox

引用 Question !作者:abg,答案:mKorBel。

并使用 J2 Auto Complete Combo Box !

mKorBel 对于我的案例的答案中的代码在以下代码中存在另一个问题,当我编辑第三行时,它工作正常,但是当我单击第一行进行编辑时,它将第一行的值设置为选定的第三行行。

    comboBox.addActionListener(new ActionListener() 
    {

       public void actionPerformed(ActionEvent e) 
       {

          JComboBox comboBox = (JComboBox) e.getSource();
          String    itemStr= comboBox.getSelectedItem().toString();
          int  selectedRowLocal= tblDetailInfoParts.getSelectedRow();

          if (selectedRowLocal != -1) 
          {
             if ((itemStr != null) && (itemStr.compareTo("") != 0) ) 
             {
                tblDetailInfoParts.setValueAt(itemStr, selectedRowLocal, 15);
             }

          }

       }
    });

最佳答案

我没有将操作监听器添加到组合框(即添加到 JTable),而是添加了 Rob Camick's Table Cell Listener !在我添加组合框的单元格中,我听到了非常适合我的更改。 (这是我之前关于 Java2s Autocomplete Combo Box 问题的评论中指出的,作者是 @mKorbel)

 private void formWindowOpened(java.awt.event.WindowEvent evt) 
 {
    AddingPartsChangeEvent();
 }     

我的 JTable 的表格单元监听器的代码如下

   private void addingPartsChangeEvent() 
   {

      Action actionProd = new AbstractAction() 
      {

         public void actionPerformed(ActionEvent e) 
         {
            try 
            {
               boolean newChk = false;
               TableCellListener tcl = (TableCellListener) e.getSource();
               int selectedRow = tcl.getRow();
               int selectedCol = tcl.getColumn();

               if (selectedCol == 4) 
               {
                  Object partO = tcl.getNewValue();
                  String design = null;
                  String partStr = partO.toString();
                  tblDetailInfoParts.setValueAt(partStr,selectedRow, 15) ;
               }

            } 
            catch (Exception ex) 
            {
               ex.printStackTrace();
            }
         }
      };
      TableCellListener tclProd = new TableCellListener(tblDetailInfoParts,
      actionProd);
    }

关于java - 自动完成 JComboBox (Java2S) 在更改事件上设置错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285809/

相关文章:

java - POJO 支持使用omnifaces 自动完成primefaces

java - 将 RapidMiner 流程​​与 Java 集成

java - 使用主要监听器和构建数组来播放视频 (VLCJ) 的程序

java - JPanel重绘问题

Java:为什么在按钮上绘制背景图像?

javascript - 重叠的 jquery 自动完成组合框

javascript - JQuery .autocomplete 和 html

java - Android - 无法转换 org.ksoap2.soapfault

Java框架问题

java - JScrollPane 阻止与内容交互