Optimizar busqueda con DocumentListener
Ay algo que no me sale bien, aqui les muestro la imagen: https://www.dropbox.com/s/8yh1dc4x3w6a3ez/DudaFilterRowTable.PNG
Como veran cuando presiono la letra "A" me muestra "A1" y "CA", algun consejo para que solo me muestren todas las palabras que comienzen con "A".
Aqui les va mi codigo:
initComponents();
setName(Bundle.CTL_CodAlmacenTopComponent());
setToolTipText(Bundle.HINT_CodAlmacenTopComponent());
//-------------------------------------------
//Create a table with a sorter
sorter = new TableRowSorter<AlmacenTableModel>(model);
tblAlmacen.setRowSorter(sorter);
//Para este ejemplo,lo mejor es tener una sola seleccion
tblAlmacen.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//Cuando se cambia la selección, proporcionará al usuario un número
//de fila para visualizar y modelo.
tblAlmacen.getSelectionModel().addListSelectionListener(
new ListSelectionListener() {
public void valueChanged(ListSelectionEvent event){
int viewRow = tblAlmacen.getSelectedRow();
if(viewRow < 0){
//Selección consiguió filtrado de distancia.
txtStatus.setText("");
} else {
int modelRow =
tblAlmacen.convertRowIndexToModel(viewRow);
txtStatus.setText(String.format("Selected Row in view: %d. " +
"Selected Row in model: %d.",
viewRow, modelRow));
}
}
}
);
//Cada vez que cambia filterText, invocar NewFilter
txtBusqueda.getDocument().addDocumentListener(
new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void removeUpdate(DocumentEvent e) {
newFilter();
}
@Override
public void changedUpdate(DocumentEvent e) {
newFilter();
}
}
);
//-------------------------------------------
tblAlmacen.setModel(model);
tblAlmacen.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent event){
if(event.getKeyCode() == KeyEvent.VK_ENTER){
verAlamacenActionPerformed(null);
}
if(event.getKeyCode()==KeyEvent.VK_F2){
btnIngresarActionPerformed(null);
}
if(event.getKeyCode()==KeyEvent.VK_F3){
btnModificarActionPerformed(null);
}
}
});
// txtBusqueda.addCaretListener(new javax.swing.event.CaretListener() {
// @Override
// public void caretUpdate(CaretEvent evt){
// validarExistencia(txtBusqueda.getText());
// }
// });
}
private void newFilter(){
RowFilter<AlmacenTableModel, Object> rf = null;
//Si la expresión actual no analiza, no se actualizan.
try {
rf = RowFilter.regexFilter(txtBusqueda.getText(), 0);
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
}
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 8 semanas 3 días
hace 12 semanas 4 días
hace 20 semanas 23 horas
hace 28 semanas 1 día
hace 30 semanas 5 días
hace 32 semanas 2 días
hace 35 semanas 4 días
hace 35 semanas 4 días
hace 41 semanas 4 días
hace 42 semanas 5 días