如何从 SQLite 的 netbeans 中的文本字段动态过滤 jTable?
How to dynamically filter jTable from textfield in netbeans from SQLite?
我对此很陌生,请原谅我的知识不足。
我正在使用 SQLite 创建一个文档管理器数据库,我正在尝试让我的 JTextField
KeyReleased 搜索动态更新并在我键入时过滤我的 JTable
以显示所有匹配结果。
有人告诉我,JTable
已经具有无需额外查询即可进行过滤的功能,但我所能找到的只是 autoCreateRowSorter
,这不是我想要做的。
这是我的 table 连接和更新 table 方法的初始代码。
import com.sun.glass.events.KeyEvent;
import java.awt.HeadlessException;
import java.io.FileNotFoundException;
import java.sql.*;
import javax.swing.*;
import net.proteanit.sql.DbUtils;
import java.text.MessageFormat;
import java.io.FileOutputStream;
import java.util.Date;
public class Employee_info extends javax.swing.JFrame {
Connection conn=null;
ResultSet rs =null;
PreparedStatement pst=null;
/**
* Creates new form Employee_info
*/
public Employee_info() {
initComponents();
conn=javaconnect.ConnecrDb();
Update_table();
Fillcombo();
}
private void Update_table(){
try{
String sql ="select * from Documents";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
table_documents.setModel(DbUtils.resultSetToTableModel(rs));
table_documents.getColumnModel().getColumn(0).setPreferredWidth(50);
table_documents.getColumnModel().getColumn(1).setPreferredWidth(1);
table_documents.getColumnModel().getColumn(2).setPreferredWidth(300);
table_documents.getColumnModel().getColumn(3).setPreferredWidth(1);
table_documents.getColumnModel().getColumn(4).setPreferredWidth(150);
}
catch (Exception e){
JOptionPane.showMessageDialog(null, e);
} finally {
try{
rs.close();
pst.close();
//conn.close();
}
catch (Exception e) {
}
}
}
这是我的JTextfild event
(显然我知道)。
private void txt_filterKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
我知道我的代码很粗糙和基础,所以很抱歉。
我只是不知道从哪里开始,所以我们将不胜感激任何帮助。
首先阅读 Sorting and Filtering 上 Swing 教程中的部分,以获取完全符合您要求的工作示例。
我建议您将 table 内容加入书签,以便快速参考基本的 Swing 功能。
此外,方法名称不应以大写字符开头或名称中包含“_”。遵循 Java Java API.
使用的约定
我对此很陌生,请原谅我的知识不足。
我正在使用 SQLite 创建一个文档管理器数据库,我正在尝试让我的 JTextField
KeyReleased 搜索动态更新并在我键入时过滤我的 JTable
以显示所有匹配结果。
有人告诉我,JTable
已经具有无需额外查询即可进行过滤的功能,但我所能找到的只是 autoCreateRowSorter
,这不是我想要做的。
这是我的 table 连接和更新 table 方法的初始代码。
import com.sun.glass.events.KeyEvent;
import java.awt.HeadlessException;
import java.io.FileNotFoundException;
import java.sql.*;
import javax.swing.*;
import net.proteanit.sql.DbUtils;
import java.text.MessageFormat;
import java.io.FileOutputStream;
import java.util.Date;
public class Employee_info extends javax.swing.JFrame {
Connection conn=null;
ResultSet rs =null;
PreparedStatement pst=null;
/**
* Creates new form Employee_info
*/
public Employee_info() {
initComponents();
conn=javaconnect.ConnecrDb();
Update_table();
Fillcombo();
}
private void Update_table(){
try{
String sql ="select * from Documents";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
table_documents.setModel(DbUtils.resultSetToTableModel(rs));
table_documents.getColumnModel().getColumn(0).setPreferredWidth(50);
table_documents.getColumnModel().getColumn(1).setPreferredWidth(1);
table_documents.getColumnModel().getColumn(2).setPreferredWidth(300);
table_documents.getColumnModel().getColumn(3).setPreferredWidth(1);
table_documents.getColumnModel().getColumn(4).setPreferredWidth(150);
}
catch (Exception e){
JOptionPane.showMessageDialog(null, e);
} finally {
try{
rs.close();
pst.close();
//conn.close();
}
catch (Exception e) {
}
}
}
这是我的JTextfild event
(显然我知道)。
private void txt_filterKeyReleased(java.awt.event.KeyEvent evt) {
// TODO add your handling code here:
}
我知道我的代码很粗糙和基础,所以很抱歉。
我只是不知道从哪里开始,所以我们将不胜感激任何帮助。
首先阅读 Sorting and Filtering 上 Swing 教程中的部分,以获取完全符合您要求的工作示例。
我建议您将 table 内容加入书签,以便快速参考基本的 Swing 功能。
此外,方法名称不应以大写字符开头或名称中包含“_”。遵循 Java Java API.
使用的约定