Я пытаюсь найти записи из таблицы. и у меня есть 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. пожалуйста, если это так, как мне решить проблему