Реализовать поиск textField в jTable

Теперь у меня есть поиск textField, реализованный с помощью события KeyReleased, который не находит / не обновляет jTable, когда я начинаю печатать, например & quot; An & quot; от & quot; Andrew & quot; и сразу после того, как я закончу набирать точно (caseSensitive) имя, которое я хочу найти.

Итак, я хочу реализовать метод фильтрации из этогосайт но у меня большие проблемы. После реализации ниже и удаления «старого» Событие KeyReleased, когда я что-то набираю в текстовом поле & quot; txt_search & quot; с jTable ничего не происходит.

Мой код таблицы, сгенерированный IDE (NetBeans), (скопирован из панели настройки кода):

Table_Employee = new javax.swing.JTable();

Table_Employee.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null},
        {null, null, null, null}
    },
    new String [] {
        "Title 1", "Title 2", "Title 3", "Title 4"
    }
)
);

Table_Employee.setToolTipText("Employee info table");

Table_Employee.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));

Table_Employee.getTableHeader().setReorderingAllowed(false);

Table_Employee.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {
        Table_EmployeeMouseClicked(evt);
    }
});
Table_Employee.addKeyListener(new java.awt.event.KeyAdapter() {
    public void keyPressed(java.awt.event.KeyEvent evt) {
        Table_EmployeeKeyPressed(evt);
    }
});

jScrollPane1.setViewportView(Table_Employee);

и я добавил это в свой класс панели, где таблица:

import java.awt.Toolkit;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
import net.proteanit.sql.DbUtils;
import java.awt.event.*;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.*;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;


public class Employee_info extends javax.swing.JFrame {
Connection conn=null;
ResultSet rs=null;
PreparedStatement pst=null;
private TableRowSorter<DefaultTableModel> sorter;
    /**
     * Creates new form Employee_info
     */
    public Employee_info() {
        initComponents();
        conn=javaconnect.ConnecrDb();
        Update_table();
        Fillcombo();
        currentDate();
        Table_Employee.setAutoCreateRowSorter(true);
        Table_Employee.setFillsViewportHeight(true);
        Table_Employee.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);


        DefaultTableModel model = new DefaultTableModel();
        sorter = new TableRowSorter<DefaultTableModel>(model);
        Table_Employee = new JTable(model);


        txt_search = new JTextField();
        //Whenever filterText changes, invoke newFilter.
        txt_search.getDocument().addDocumentListener(
                new DocumentListener() {
                    public void changedUpdate(DocumentEvent e) {
                        newFilter();
                    }
                    public void insertUpdate(DocumentEvent e) {
                        newFilter();
                    }
                    public void removeUpdate(DocumentEvent e) {
                        newFilter();
                    }
                });
    }

    private void newFilter() {
    RowFilter<DefaultTableModel, Object> rf = null;
    //If current expression doesn't parse, don't update.
    try {
        rf = RowFilter.regexFilter(txt_search.getText(), 0);
    } catch (java.util.regex.PatternSyntaxException e) {
        return;
    }
    sorter.setRowFilter(rf);
}

Мне действительно нужна помощь, пожалуйста! Это мой последний шанс, потому что я действительно сделал поиск в Google, и ничего не изменилось.

С уважением, Эндрю

Ответы на вопрос(1)

Ваш ответ на вопрос