0

質問を参照してください!abg と回答で mKorBel で。

そして、J2sオートコンプリート コンボ ボックスを使用します。

Answer By mKorBel For My Case のコードには、次のコードで別の問題があり、3 行目を編集すると正常に動作しますが、編集のために 1 行目をクリックすると、1 行目の値が選択した 3 行目に設定されます。

    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 の Table Cell Listenerを追加しました。そして、comboBoxを追加したセルで、私にとって完璧に機能する変更を聞いた。(これは、@mKorbel によるJava2s Autocomplete Combo Box に関する以前の質問のコメントで指摘されました)

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

My JTable に対する My Table Cell Listener のコードは次のとおりです。

   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 に答える