62,620
社区成员
发帖
与我相关
我的任务
分享 //内容为空或者空格就结束
if (txtSearchName.getText().trim().length() == 0) {
//重新写入数据,用于当搜索以后清空搜索再点搜索的时候
((WeaponTableModel)table.getModel()).setData(Database.weapons);
((WeaponTableModel)table.getModel()).fireTableDataChanged();
return;
}
//建立集合用于存放查找到的数据
List<Weapon> temps = new ArrayList<Weapon>();
//遍历数据库看有无这个内容
for (Weapon weapon : Database.weapons) {
//有这个名字的,模糊匹配,改变了判断条件,由完全匹配equals换成模糊匹配indexof,实现了模糊搜索(2.0版本)
if (weapon.getName().indexOf((txtSearchName.getText().trim())) != -1) {
//添加进去
temps.add(weapon);
}
}
//判断找到的情况
if (temps.size() != 0) {
//更新显示内容
((WeaponTableModel)table.getModel()).setData(temps);
//提醒显示新内容
((WeaponTableModel)table.getModel()).fireTableDataChanged();
} else {
JOptionPane.showMessageDialog(null, "要查找的内容不存在");
//没有的时候显示原内容
((WeaponTableModel)table.getModel()).setData(Database.weapons);
((WeaponTableModel)table.getModel()).fireTableDataChanged();
}
这是我前端时间写的查找功能事件,自己备注了很多东西,只能给你个大概思路:
其中
Weapon是自写的数据类型,用来描述一件物品。和你个人信息那种差不多
getmodel那个方法是获取自写的表格模板用于改变数据库数据
Database那个类我是用来存放数据信息,模拟的数据库,里面的属性就只有一个静态的集合存放Weapon的对象。用静态是方便调用(可以直接点)。
最终搜索结果这样(可完全匹配搜索,也可模糊搜索,当然我只写了按照某一具体属性,这里名字):
至于接收另外前类的数据后类我是这样写的(不过这里是修改窗口的界面):
如图 我想做的是获取查询前面的文本行(text0)的内容
这个是我做的一个实验,主要目的就是在B类中获取在A类中输入文本行的No号码,然后在B类中跟数据库表中的号码匹配,实现一个简单的查询功能。可是不清楚怎么搞
A类:
JPanel panel=new JPanel();
JTextField text0=new JTextField(6);
panel.add(text0);
button=new JButton("查询");
panel.add(button);
为查询注册监听器public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button)
{
String str0=text0.getText();
if(str0.equals("")) //输入空串不执行操作
return;
SelectOut select1=new SelectOut();
select1.setVisible(true);
dispose();}}
});
B类:(B类是我重新为了显示查询结果写的类)
MyTableModel tableModel=new MyTableModel();
db dbcon;
try
{//连接数据库,执行查询语句
dbcon=new db();
ResultSet rs=dbcon.executeQuery("select * from [person] where No='str0'");
//获取查询结果中的列名,填充表格模型
ResultSetMetaData rsmd=rs.getMetaData();
int Colnum=rsmd.getColumnCount();
int i;
for(i=1;i<=Colnum;i++)
tableModel.addColumn(rsmd.getColumnName(i));
while(rs.next())
{
Person0934Entity person=new Person0934Entity();
person.setNo(rs.getString("no"));
person.setName(rs.getString("name"));
person.setSex(rs.getString("sex"));
person.setBirthday(rs.getDate("birthday"));
person.setProfessor(rs.getString("professor"));
person.setDeptno(rs.getString("deptno"));
}
rs.close();
dbcon.closeConn();
