You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击活动加入按钮时「您已加入该活动」的错误提示控制?

解决重复加入活动的提示问题

这问题我熟!要实现用户重复点击加入按钮时显示「您已加入该活动」的提示,核心就是在执行加入操作前先校验该活动是否已经在用户的已参与列表里。

具体实现思路

  • 用活动ID(event_id,这是活动的唯一标识)作为校验依据,比活动名称更准确,避免同名活动的干扰
  • 遍历用户已参与活动的模型model2,对比每行的活动ID是否与选中的活动ID一致
  • 如果找到匹配项,直接提示并终止后续加入流程;否则执行原有的加入逻辑

修改后的完整代码

model=(DefaultTableModel) table1.getModel();//table1为全部活动列表模型
model2=(DefaultTableModel) mytable.getModel();//mytable为用户已参与活动模型
int selected_row=table1.getSelectedRow();//选中要加入的行
String username=User_Login.username.getText();//从登录页面获取用户名以写入已参与活动文本文件
if(table1.getRowCount()==0) {
    info.setText("目前暂无活动!!");
} else {
    if(selected_row==-1) {
        info.setText("请选择一行以加入活动!!");
    } else {
        int event_id=(int) model.getValueAt(selected_row,0);
        String event_name=(String) model.getValueAt(selected_row, 1);
        String event_loc=(String) model.getValueAt(selected_row, 2);
        String date= (String) model.getValueAt(selected_row, 3);

        // 新增:检查是否已加入该活动
        boolean isAlreadyJoined = false;
        for(int i = 0; i < model2.getRowCount(); i++){
            int existingEventId = (int) model2.getValueAt(i, 0);
            if(existingEventId == event_id){
                isAlreadyJoined = true;
                break;
            }
        }

        if(isAlreadyJoined){
            // 已加入,提示错误信息
            info.setText("您已加入该活动");
            table1.clearSelection();
        } else {
            // 未加入,执行原有的加入流程
            UserInfo.joinedEventWriter(username, event_id, event_name, event_loc, date);
            Object [] row_data={event_id,event_name,event_loc,date};
            model2.addRow(row_data);
            info.setText("您已成功加入"+event_name+"活动");
            table1.clearSelection();
        }
    }
}

关键细节说明

  • 校验逻辑放在获取活动信息之后、写入文件之前,避免重复写入数据和重复添加行到表格,减少无效操作
  • 遍历model2时只对比活动ID,确保校验的准确性,不会因为活动名称、地点等信息变更导致误判
  • 无论是否加入成功,最后都清空表格选中状态,提升交互体验

内容的提问来源于stack exchange,提问作者Desktop Xx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:14:13