2016-12-30 3 views
-1

привет всем, пожалуйста, мне нужна ваша помощь. Я хочу добавить фильтр в таблицу. Вот часть кода. Собственно, после добавления строк в таблицу и я пытаюсь выполнить поиск с использованием фильтра, когда я нажимаю клавишу, строки исчезают. Как я могу заставить этот фильтр работать? Спасибоjava filter используя jTextfieldKeyReleased

private void filter1(String query)  
{ 
DefaultTableModel model=(DefaultTableModel) addtab.getModel(); 
TableRowSorter<DefaultTableModel> filter1=new TableRowSorter<>(model); 
addtab.setRowSorter(filter1); 
filter1.setRowFilter(RowFilter.regexFilter(query)); 
} 
private void searchKeyReleased(java.awt.event.KeyEvent evt) {         
    String query=search.getText().toLowerCase(); 
filter1(query); 
} 
+0

Для лучшей помощи, прежде чем отправить сообщение [mcve]. '", что вы можете видеть на изображении "', какое изображение? – MasterBlaster

+0

Вы зарегистрировали KeyEventListener в поле поиска? –

+0

@JochenBedersdorfer Нет, пожалуйста, расскажите мне, как это исправить? Я новичок в java ... –

ответ

-1

свинг имеет прекрасный учебник, написанный командой документации Java. Это довольно обширен, и объясняет, как реализовать KeyListener здесь:

https://docs.oracle.com/javase/tutorial/uiswing/events/keylistener.html

В вашем случае в коде инициализации, добавить что-то вроде

search.addKeyListener(new KeyAdapter() { 
    @Override public void keyReleased(KeyEvent e) { 
     // check if e is actually a character, read up about focus handling 
     searchKeyReleased(e); 
    } 
}); 

(не компилируется, но вы получите эту идею)

+0

(1-) Не используйте KeyListener, Swing имеет более новые и лучшие API. В этом случае «DocumentListener» будет прослушивать изменения в текстовом поле. Ваш предложенный код не будет работать, например, используется backspace или текст вставляется в текстовое поле. – camickr

+0

правда, забыл о DocumentListener. Будет также изменен на keyPressed снова. Нужно больше фильтровать, затем –

+0

Кстати, не согласен с утверждением «лучшего» API;) Он имеет дополнительный API по сравнению с AWT. Вы по-прежнему будете подвергнуты классам AWT, если вы узнаете о программировании Swing –

0

Прочтите раздел из учебника Swing по Sorting and Filtering для рабочего примера.

В основном примеры используют DocumentListener для прослушивания изменений в текстовом поле, а затем применения фильтра.

Смежные вопросы