2021/8/28

这篇博客详细介绍了如何使用Java编程实现QQ群的删除功能,以及服务器端对于群主身份验证的过程。主要涉及GUI组件如JFrame、JLabel的使用,以及事件监听处理,包括删除确认对话框和群成员显示。同时,服务器端通过比较用户ID来判断是否为群主,从而决定是否允许执行群删除操作。
摘要由CSDN通过智能技术生成

#8:30-9:00 签到打卡

#9:30-12:00 观看java视频

#14:00-18:00 写qq项目

1.群删除类

本人为群主将群删除,跟删除好友类似。

package qqc.view;

import qqc.massage.Massage;
import qqc.mode.Mqqchat;
import qqc.mode.Mthreads;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.io.File;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class qundeletef extends JFrame implements MouseListener {
    JPanel jp;
    JLabel jl1[]=new JLabel[50];
    String id;
    String myname;
    JLabel delete;
    qundeletef(String id,String myname,String qun, ArrayList<String> qunname) throws IOException {
        this.id=id;
        this.myname=myname;
        jp=new JPanel(new GridLayout(20,1,4,4));
        if(qun!=null&&!qun.equals("")) {
            String[] f1 = qun.split("\\|");
            for (int i = 0; i < f1.length; i++) {
                String ss1=qunname.get(i);
                File fl=new File("src\\qqc\\massage\\"+id+"\\"+f1[i]+".jpg");
                ImageIcon imge=new ImageIcon(fl.getCanonicalPath());
                Image img=imge.getImage();
                img=img.getScaledInstance(30,30,Image.SCALE_DEFAULT);
                imge.setImage(img);
                jl1[i] = new JLabel(ss1,imge,JLabel.LEFT);
                jl1[i].addMouseListener(this);
                jp.add(jl1[i]);
            }
            this.add(new JScrollPane(jp),BorderLayout.CENTER);
            this.setSize(250,500);
        }
    }
public void qundelete(String id){
    jp.remove(delete);
    jp.updateUI();
}
    @Override
    public void mouseClicked(MouseEvent e) {
        if(e.getClickCount()==2){
            int n=JOptionPane.showConfirmDialog(null,"你确定删除此群吗?","删除提示",JOptionPane.YES_NO_OPTION);
            if(n==0){
                String ss=((JLabel) e.getSource()).getText()+"群";
                Massage m=new Massage();
                try {
                    m.setS("36");
                    m.setMyid(id);
                    m.setMyname(myname);
                    m.setOid(Mqqchat.getid(ss));
                    m.setOname(ss);
                    ObjectOutputStream oos=new ObjectOutputStream(Mthreads.getThread(id).s.getOutputStream());
                    oos.writeObject(m);
                    delete=(JLabel) e.getSource();
                    jp.remove(((JLabel) e.getSource()));
                    jp.updateUI();
                } catch (IOException ioException) {
                    ioException.printStackTrace();
                }
            }
        }
    }

    @Override
    public void mousePressed(MouseEvent e) {

    }

    @Override
    public void mouseReleased(MouseEvent e) {

    }

    @Override
    public void mouseEntered(MouseEvent e) {

    }

    @Override
    public void mouseExited(MouseEvent e) {

    }
}

2.群主判断

服务器判断是否为群主,发送s信息过去,做相应的判断。

                }else if(m.getS().equals("36")){//删除群
                    Mysql my=new Mysql();
                    String ss=my.qun("3",m.getQun());//数据拿出群主
                    if(m.getMyid().equals(ss)){//判断是否为群主
                        oos=new ObjectOutputStream(s.getOutputStream());
                        oos.writeObject(m);
                    }else {
                        m.setS("37");
                        oos = new ObjectOutputStream(s.getOutputStream());
                        oos.writeObject(m);
                    }
                    
                }




else if(m.getS().equals("36")){//删除群
                    Mqqchat.getqqin(m.getMyid()).deletequn(m.getQun());
                    Mqqchat.getqunD(m.getMyid()).qundelete(m.getQun());
                }else if(m.getS().equals("37")){//不是群主的通知
                    JOptionPane.showConfirmDialog(null,"抱歉你不是群主,无法删除","删除提示",JOptionPane.WARNING_MESSAGE);
                }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值