2016-05-17 6 views
0

rs2xml.jar を使用してデータベースからjtableにサンプルデータを取り込みました。このlinkを参照してjTableをフィルタリングするjTextFieldも追加しました。jtableテーブルモデルクローンからデータの列を削除

私の問題は、ここで私はjtableにid列を取り込み、それを編集するときに行とセルのデータを識別するために使用します。私の質問は、TableModelのクローンからidカラムを削除するにはどうすればいいですか?

コード以下である:

Vector originalTableModel = (Vector) ((DefaultTableModel) jTable1.getModel()).getDataVector().clone(); 

public void searchTableContents(String searchString) { 
     DefaultTableModel currtableModel = (DefaultTableModel) jTable1.getModel(); 
     //To empty the table before search 
     currtableModel.setRowCount(0); 
     //To search for contents from original table content 
     for (Object rows : originalTableModel) { 
      Vector rowVector = (Vector) rows; 
      for (Object column : rowVector) { 
       if (column.toString().contains(searchString)) { 
        //content found so adding to table 
        currtableModel.addRow(rowVector); 
        break; 
       } 
      } 
     } 
    } 

here is the image of my application

答えて

0

まず以下のコードを使用し、次にテキストフィールドを作成する:以下

jTextField1.getDocument().addDocumentListener(new DocumentListener() { 
      @Override 
      public void insertUpdate(DocumentEvent e) { 
       updateFilter(jTextField1.getText()); 
      } 

      @Override 
      public void removeUpdate(DocumentEvent e) { 
       updateFilter(jTextField1.getText()); 
      } 

      @Override 
      public void changedUpdate(DocumentEvent e) {//ignore this 
      } 
     }); 
    } 

    protected void updateFilter(String text) { 
     TableRowSorter<TableModel> sorter = (TableRowSorter<TableModel>) jTable1.getRowSorter(); 
     RowFilter<TableModel, Object> firstFiler = null; 
     RowFilter<TableModel, Object> secondFilter = null; 
     RowFilter<TableModel, Object> thirdFiler = null; 
     RowFilter<TableModel, Object> forthFilter = null; 
     List<RowFilter<TableModel, Object>> filters = new ArrayList<RowFilter<TableModel, Object>>(); 
     RowFilter<TableModel, Object> compoundRowFilter = null; 
     try { 
      firstFiler = RowFilter.regexFilter(text, 1); 
      secondFilter = RowFilter.regexFilter(text, 2); 
      thirdFiler = RowFilter.regexFilter(text, 3); 
      forthFilter = RowFilter.regexFilter(text, 4); 

      filters.add(firstFiler); 
      filters.add(secondFilter); 
      filters.add(thirdFiler); 
      filters.add(forthFilter); 

      compoundRowFilter = RowFilter.orFilter(filters); 
     } catch (java.util.regex.PatternSyntaxException e) { 
      return; 
     } 
     sorter.setRowFilter(compoundRowFilter); 
    } 

picture example here例です

関連する問題