2016-05-17 2 views
0

У меня есть пример данных, заполняемых из базы данных в jtable, используя rs2xml.jar , и я также добавил jTextField для фильтрации jTable, обратившись к этому link).удалить столбец данных из jtable tablemodel clone

Моя проблема заключается в том, что я заполняю столбец id в jtable, и я использую его, чтобы определить данные о строках и ячейках, когда пользователь его редактирует. Мой вопрос: как удалить столбец id из клона TableModel?

код ниже:

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

Смежные вопросы