2016-05-17 15 views
0

Ich habe eine Beispieldaten aus der Datenbank zu füllen rs2xml.jar jtable mit und Ich habe auch eine JTextField die jTable zu filtern, indem diese link bezieht).löschen Sie eine Spalte von Daten aus einem jtable Tablemodel Klon

Mein Problem hier ist ich befüllen die ID-Spalte zu JTable und ich verwende es identifizieren Sie die Zeile und Zellen Daten, wenn Benutzer es bearbeiten. Meine Frage ist, wie kann ich die ID-Spalte aus dem Klon von TableModel entfernen?

-Code ist unten:

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

Antwort

0

Zuerst ein Textfeld erstellen Sie dann den Code verwenden unter:

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

Im Folgenden wird das Beispiel

picture example here