gpt4 book ai didi

java - 无法在 netbeans 中使用文本字段过滤 jtable 行

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:23 25 4
gpt4 key购买 nike

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 的第四列实现行过滤器的代码,但它不起作用。请帮助我...

最佳答案

您可以使用以下代码解决问题:

   private void txtSearchKeyReleased(java.awt.event.KeyEvent evt) {                                        

String target = txtSearch.getText();
TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(tblStock.getModel());
tblStock.setRowSorter(sorter);
sorter.setRowFilter(RowFilter.regexFilter(".*"+target+".*", yourColumnIndice));

}

这应该适合你。

关于java - 无法在 netbeans 中使用文本字段过滤 jtable 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com