在原有的功能上添加搜索功能
/*
按照名字查询
大致思路:
获取用户的输入信息,
若为空,则恢复原始数据,并且恢复按钮功能
不为空:
若第一次查询,需将信息备份
否则,将查询到的信息显示在JTable
private void onSearch()
{
// 获取用户输入的过滤条件
String filter = searchField.getText().trim();
if(filter.length() == 0) // 过滤条件为空
{
// 恢复原始数据
tableModel.setRowCount(0);// 清空
for(Student s : backupList)
{
addTableRow(s);
}
backupList = null;
this.addButton.setEnabled(true);
this.deleteButton.setEnabled(true);
this.editButton.setEnabled(true);
return;
}
// 首次执行数据备份,放到一个 List 里
if( backupList == null)
{
backupList = new ArrayList<>();
for(int i=0; i<tableModel.getRowCount(); i++)
{
Student item = getTableRow(i);
backupList.add( item );
}
}
// 把符合条件的记录显示在表格里
tableModel.setRowCount(0);//清空
for(Student s : backupList)
{
if(s.name.indexOf(filter)>=0) //筛选条件
{
addTableRow(s);
}
}
// 把其他操作按钮禁用
this.addButton.setEnabled(false);
this.deleteButton.setEnabled(false);
this.editButton.setEnabled(false);
}