Pessoal, tenho um filtro em um JTable que tá meio estranho…
Se eu fizer uma pesquisa por HAMA ele mostra HAMILTON, por exemplo, como se não estivesse pegando a última letra…
private void Table()throws Exception {
try {
rs = stmt.executeQuery("select cad_nr, cad_nome, cid, bai, tipo_coop from r_cadast");
rsmd = rs.getMetaData();
int col = rsmd.getColumnCount();
while(rs.next()) {
bv = new Vector<String>();
int a;
for(a=1;a<=col;a++) {
if(flag) {
head.add(rsmd.getColumnName(a));
}
bv.add(rs.getString(a)==null?"":(String)rs.getString(a));
}
body.add(bv);
flag=false;
}
rs.close();
stmt.close();
con.close();
}
catch(Exception exec) {
JOptionPane.showMessageDialog(null, "Problemas na tabela.", "Erro", JOptionPane.INFORMATION_MESSAGE);
exec.printStackTrace();
}
jTable = new JTable(body, head);
jTable.setModel(model);
jTable.setRowSorter(sorter);
jTable.setCellEditor(null);
jTable.setLocation(new Point(15, 118));
jTable.setBackground(new Color(204, 204, 204));
jTable.setAutoscrolls(true);
jTable.setSize(new Dimension(200, 200));
jTable.addKeyListener(this);
jTable.addMouseListener(this);
}
##########################
public void keyPressed(KeyEvent ev) {
if(ev.getSource() == search) {
String text = search.getText();
if (text.length() == 0) {
sorter.setRowFilter(null);
} else {
try {
sorter.setRowFilter(RowFilter.regexFilter(text));
} catch (PatternSyntaxException pse) {
JOptionPane.showMessageDialog(null, "Erro...", "Erro", JOptionPane.ERROR_MESSAGE);
}
}
}
}
Onde eu estou errando ?