62,614
社区成员
发帖
与我相关
我的任务
分享
//内容为空或者空格就结束
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的对象。用静态是方便调用(可以直接点)。
最终搜索结果这样(可完全匹配搜索,也可模糊搜索,当然我只写了按照某一具体属性,这里名字):
至于接收另外前类的数据后类我是这样写的(不过这里是修改窗口的界面):