每次单击searchButton时,TableRowSorter都会显示不同的结果

时间:2017-05-31 15:06:07

标签: java rowfilter tablerowsorter

对于我的代码,我有一个非常奇怪的错误。 每次按下搜索按钮,结果总是不同。

这是我的虚拟数据库。

我在表格中有4列和3行:

001 Viagra 1 APL
002 Diane 2 SBF
003 Santibi 3 BSP

我第一次按下搜索按钮时,表格中的数据根本没有变化。

这是我的程序的屏幕截图。 如果我第二次按下搜索按钮(结果是正确的)

,就会发生这种情况

This is what happened if I pressed the Search Button the second time (the result is correct)

第三次按下按钮时,显示的结果不正确

The third time I pressed the button, it shows an incorrect result

如果我连续按下按钮,结果会不断变回,从正确变为不正确。

这是我的代码:`

public void searchPerformed() {
    if (tSearch.getText().toString() == sch) { return; }
    sch = tSearch.getText().toString();

    int iColumn = cbSearch.getSelectedIndex();

    TableRowSorter<TableModel> sorter = new TableRowSorter<>(model);
    tbl.setRowSorter(sorter);

    if (tSearch.getText().length() > 0) {
        sorter.setRowFilter(RowFilter.regexFilter("(?i)" + tSearch.getText(), iColumn));

    } else {
        sorter.setRowFilter(null);
    }

    if (tbl.getRowCount() != 0) { tbl.setRowSelectionInterval(0, 0); }
    else { clearText(); }

}

private void tSearchKeyPressed(java.awt.event.KeyEvent evt) {                                   
    if (evt.getKeyCode() != KeyEvent.VK_ENTER) { return; }

    searchPerformed();
}     

private void tSearchKeyPressed(java.awt.event.KeyEvent evt) {                                   
    if (evt.getKeyCode() != KeyEvent.VK_ENTER) { return; }

    searchPerformed();
}     

0 个答案:

没有答案