Swing-JTable(查询记录)8/9

本文详细介绍了如何在Java Swing应用程序中实现基于名字的搜索功能。通过用户输入的过滤条件,程序能够从现有数据中筛选并展示符合搜索条件的记录。同时,文章提供了完整的代码示例,包括数据备份、恢复原始数据及按钮功能的控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在原有的功能上添加搜索功能

/*
按照名字查询

大致思路:
获取用户的输入信息,
        若为空,则恢复原始数据,并且恢复按钮功能
        不为空:
                若第一次查询,需将信息备份
                否则,将查询到的信息显示在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);
		
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值