0

参考问题!由 abg 和由 mKorBel 回答。

并使用 J2s自动完成组合框

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);
             }

          }

       }
    });
4

1 回答 1

1

我没有将动作侦听器添加到组合框(即添加到 JTable),而是添加了Rob Camick 的表格单元侦听器!在我添加了组合框的单元格中,我听到了对我来说非常有效的变化。(这在我之前关于 Java2s Autocomplete Combo Box By @mKorbel的问题的评论中指出)

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

My Table Cell Listener To My 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);
    }
于 2012-11-09T02:44:20.057 回答