您的位置:首页 > 编程语言 > Java开发

JAVA文本框根据输入内容自动模糊查询(动态)

2017-09-23 07:29 453 查看
要做到文本框能根据自己输入的值去查询数据库的东西需要一些准备,思路就是要当按下文本框的时候就会弹出一个表格,表格就是根据你输入的值去查询数据库数据(对文本框增加删除操作都可以动态查询),然后就是要当查询到了的数据需要双击表格需要的内容行把表格界面设置不可见,大致的思路就是这样。

//默认表格模版的设置,添加表头和设置表格不可编辑
dtm3=new DefaultTableModel(columnNames,0);
table3=new JTable(dtm3){
public boolean isCellEditable(int row, int column)
{
return false;
}//表格不允许被编辑 }
};
String sql="select MrId,PaId,PaName,DeptName from Medical_records" ;
databaseSearch1(sql,4);//当表格被显示时候即把数据库的所有数据调出来

JScrollPane5.setViewportView(table3);//给表格添加滚动条
panel1.add(JScrollPane5);
JScrollPane5.setBounds(10, 0, 400,100);
JScrollPane5.setVisible(false);


//tx1文本框添加事件,根据文本框内容的改变模糊查询到数据库内容,显示到表格中
4000
tx1.getDocument().addDocumentListener(new DocumentListener()
{
@Override
public void removeUpdate(DocumentEvent e) {

updata_combobox();
}

@Override
public void insertUpdate(DocumentEvent e) {

updata_combobox();
}

@Override
public void changedUpdate(DocumentEvent e) {

updata_combobox();
}

private void updata_combobox(){
String s1=null;
s1=tx1.getText();  //根据S1的内容模糊查询数据库对应的数据
JScrollPane5.setVisible(true);//JScrollPane5是一个表格滚动条,让表格显示可见
String sql="select MrId,PaId,PaName,DeptName from Medical_records where MrId like  '%"+s1+"%'";//SQL语句
databaseSearch1(sql,5);  //把数据添加到表格中
}
});


//把数据添加到表格中
private void databaseSearch1(String sql, int i) {
// TODO Auto-generated method stub
Connection con;
con=connect.getConnection();
ResultSet rs;
try{
int rowcount = dtm3.getRowCount() - 1;
if (rowcount != -1) {
for (int i1 = rowcount; i1 >= 0; i1--) {
dtm3.removeRow(i1); // 删除Jtable中的所有行
}
dtm3.setRowCount(0); // 将Jtable中的行数设为零
}
Statement stmt=con.createStatement();
rs=stmt.executeQuery(sql);
String[] data = new String[4];
while (rs.next()) {
for (int j = 1; j <= 4; j++) {
data[j - 1] = rs.getString(j); // 取出数据库中的数组装载到数组中
}
dtm3.addRow(data); // 在Jtabl

}

con.close();
//设置表格隔行背景色(隔行背景色不同)
}catch(Exception err){
}
}








后面还需要给文本框添加事件以及表格的双击事件把表格视图设置不可见等就没贴代码了,自己琢磨,相信你行的,以上代码有不懂可以问问我,互相学习,菜鸟一枚,有不对的地方就直说。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 数据库 数据 界面
相关文章推荐