Bây giờ tôi có một văn bản tìm kiếmĐược thực hiện với sự kiện KeyReleased, không tìm thấy/cập nhật jTable khi tôi bắt đầu nhập ví dụ "An" từ "Andrew", và ngay sau khi tôi kết thúc nhập chính xác (caseSensitive) tên mà tôi muốn tìm.Thực hiện tìm kiếm textField vào jTable
Vì vậy, những gì tôi muốn là triển khai phương pháp lọc từ site nhưng tôi có vấn đề lớn. Sau khi thực hiện dưới đây và loại bỏ sự kiện KeyReleased cũ "", khi tôi gõ một cái gì đó trong textfield "txt_search" không có gì xảy ra với jTable.
Mã của tôi của bảng được tạo ra bởi IDE (NetBeans) là (sao chép từ bảng điều khiển đang tùy chỉnh):
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);
và tôi thêm này trên lớp panel của tôi, nơi bảng là:
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);
}
tôi thực sự cần một số trợ giúp, xin vui lòng! Đây là cơ hội cuối cùng của tôi, bởi vì tôi thực sự đã thực hiện các giải pháp tìm kiếm của Google và không có gì thay đổi.
sự tôn trọng, Andrew
Giống như một con trỏ bổ sung cho nhiều khả năng sự khác biệt quan trọng nhất: 'table.setRowSorter (sorter);', vì mã trong câu hỏi đã quên phần đó. – Yhn
Tôi biết ví dụ này, nhưng bạn có thể giúp tôi thích ứng với nhu cầu của mình. Bây giờ tôi sử dụng IDE để xây dựng jTable, textFields và các công cụ. Trong tương lai gần, tôi có kế hoạch xây dựng bằng tay. Tôi đang bối rối khi tôi cố gắng để thích ứng với mã đó để jTable của tôi tạo ra mã với mô hình mặc định và các công cụ. –
@Apopei Andrei Ionut xin lỗi tôi không biết làm thế nào để làm điều đó từ build_in pallete, có các trường thuộc tính cho mọi hành động, không có lý do nào về phía tôi tại sao phải biết Java & Swing và với GUI Editor quá, – mKorbel