ArrayIndexOutOfBoundsException при поиске с помощью выпадающего списка - PullRequest
0 голосов
/ 03 ноября 2019

Я пытаюсь найти записи из таблицы. и у меня есть JTextField и Jcombobox для выполнения поиска, поэтому у меня есть этот код для JTextField, который выполняет общую фильтрацию таблицы посредством сортировки

private void SearchBoxKeyReleased(java.awt.event.KeyEvent evt) {                                         
     try{
     TableRowSorter<TableModel> sorter = new TableRowSorter<>(((DefaultTableModel)expTable.getModel()));
    sorter.setRowFilter(RowFilter.regexFilter(SearchBox.getText()));
    expTable.setRowSorter(sorter);
    }catch(Exception e){
    e.getMessage();
    }         // TODO add your handling code here:
    }

, это прекрасно работает

и этот коддля JCobombox, который ищет только определенный столбец

   String sql = "Select id,expense,bill,month,year from expenses where month='"+combo_expenditure_month.getSelectedItem().toString()+"'";
    pst = con.prepareStatement(sql);
    rs=pst.executeQuery();
    expTable.setModel(DbUtils.resultSetToTableModel(rs));
    }catch(SQLException ex){
    JOptionPane.showMessageDialog(null, ex);
    }
     finally{
            try{
                rs.close();
                pst.close();
            }
            catch(Exception e){
            }
        }

проблема в том, что когда я использую JtextField для поиска и впоследствии использую comboBox, я получаю это сообщение об ошибке:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 7 >= 7
    at java.base/java.util.Vector.elementAt(Vector.java:496)
    at java.desktop/javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:660)
    at java.desktop/javax.swing.JTable.getValueAt(JTable.java:2706)
    at java.desktop/javax.swing.JTable.prepareRenderer(JTable.java:5721)

amдумая, что сортировка, выполненная с текстовым полем, не закрывается должным образом до инициализации кода jcombobox. пожалуйста, если это так, как мне решить проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...