DBOperations objDB;
ArrayList alstStock;
private TableRowSorter sorter;
public void viewDailyStock() {
initComponents();
setSize(Toolkit.getDefaultToolkit().getScreenSize());
objDB = new DBOperations();
alstStock = objDB.getStockList();
generateTable();
txtSearch.getDocument().addDocumentListener(
new DocumentListener() {
@Override
public void changedUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void insertUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void removeUpdate(DocumentEvent e) {
newFilter();
}
});
setVisible(true);
}
void generateTable() {
Object data[][] = new Object[alstStock.size()][10];
String date = null;
for (int i = 0; i < alstStock.size(); i++) {
StockBean objBean = (StockBean) alstStock.get(i);
data[i][0] = i + 1;
data[i][1] = objBean.getBrand();
data[i][2] = objBean.getProductCode();
data[i][3] = objBean.getProductName();
data[i][8] = objBean.getItemInBox();
SimpleDateFormat df = new SimpleDateFormat("EEEE, MMM d,yyyy");
date = df.format(objBean.getDate());
data[i][4] = date;
data[i][5] = objBean.getUser();
data[i][6] = objBean.getLotNumber();
data[i][7] = objBean.getQtyInItem();
data[i][9] = objBean.getQtyInBox();
}
String header[] = {"S.No.", "Brand", "Code", "Name", "Date", "Added By", "Lot No.", "Qty In Item", "Item", "Qty In Boxes"};
tblStock = new JTable(data,header);
sorter=new TableRowSorter(tblStock.getModel());
tblStock.setRowSorter(sorter);
jScrollPane1.setViewportView(tblStock);
setWidth();
tblStock.setAutoCreateRowSorter(true);
}
private void newFilter() {
RowFilter rf = null;
try {
rf = RowFilter.regexFilter(txtSearch.getText(), 3);
} catch (java.util.regex.PatternSyntaxException e) {
System.out.println("Exception "+e);
}
sorter.setRowFilter(rf);
}
DBOperationsは、データベーステーブルからデータをフェッチするためのクラスです。StockBeanは、getterメソッドとsetterメソッドを持つオブジェクトのクラスです。
これは、テキストフィールドを使用してjtableの4列目に行フィルターを実装する私のコードですが、機能していません。私を助けてください...