[英]delete a column of data from a jtable tablemodel clone
我有一個使用rs2xml.jar從數據庫填充到jtable的樣本數據,並且還添加了一個jTextField來通過引用此鏈接來過濾jTable。
我的問題是我將id列填充到jtable中,並在用戶編輯它時使用它標識行和單元格數據。 我的問題是如何從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;
}
}
}
}
首先創建一個文本字段,然后使用以下代碼:
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);
}
以下是示例
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.