我使用的是jTable的动态排序代码。问题是,只要我一键入,表就会显示正确的响应,一秒钟后,它就会返回到以前的原始状态。如何纠正这个问题?
private void jTextField2KeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
TableRowSorter<TableModel> rowSorter = new TableRowSorter<>(jTable1.getModel());
jTable1.setRowSorter(rowSorter);
jTextField2.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
String text = jTextField2.getText();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
}
}
@Override
public void removeUpdate(DocumentEvent e) {
String text = jTextField2.getText();
if (text.trim().length() == 0) {
rowSorter.setRowFilter(null);
} else {
rowSorter.setRowFilter(RowFilter.regexFilter("(?i)" + text));
}
}
@Override
public void changedUpdate(DocumentEvent e) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
});
}发布于 2021-01-22 03:25:27
向文本字段添加侦听器应在构造函数中完成。在方法中做同样的事情是错误的,并且不会给出我们期望的任何输出。
https://stackoverflow.com/questions/65455516
复制相似问题