⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jicq.java

📁 类似QQ一个用java开发出来的聊天工具
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            onlineMon = new Sender(onlineCmd);
            onlineMon.start();

            String cmd = null;
            if (jICQ.isApplet)
                cmd = "GETME icqNo:" + myIcqID.icqNo + " port:" + UDPrPort;
            else
            {
                //int i=0;boolean ew=false;
                //while(i<40&&ew==false){Thread.sleep(100);if (rmsg.udpback)ew=true;}
                //cmd="GETME icqNo:"+myIcqID.icqNo+" port:"+rmsg.backport;
                cmd = "GETME icqNo:" + myIcqID.icqNo + " port:" + UDPrPort;
            }
            sender = new Sender(cmd);
            sender.start();
            result = sender.getReturn();
            if (result.getCode() == 200)
            {
            }
            else
            {
                jICQ.exitSystem = true;
                exitMsg(result.getMsg());
                return;
            }
            toHash(friends);
            toID(onlineFriends);
            reSort();
            //begin to monitor message
        }
        catch (Exception e)
        {
            System.out.println("  MainFrame run()-log error.\n");
            e.printStackTrace();
        }
        LOGED = true;
        repaint();

        try
        {
            //Result result=null;
            try
            {
                myIcqID = getID(myIcqID);
                myIcqID.isOnline = true;
            }
            catch (Exception e)
            {
            }
            seek = new Seek(myIcqID);

            Dimension currentsize, pastsize;
            currentsize = pastsize = getSize();

            while (jICQ.exitSystem == false)
                try
                {
                    currentsize = getSize();
                    if (currentsize.height != pastsize.height)
                    {
                        repaintEvt = true;
                        pastsize = getSize();
                    }
                    if (repaintEvt)
                    {
                        reSort();
                        repaint();
                        repaintEvt = false;
                    }
                    if (!onlineMon.isAlive())
                    {
                        onlineMon = new Sender(onlineCmd);
                        onlineMon.start();
                    }
                    if (duplogon)
                    {
                        setVisible(false);
                        exitMsg("别人正在用这个号码登录,请保护好你的密码。");
                    }
                    checkID();
                    Thread.sleep(100);
                }
                catch (Exception e)
                {
                    System.out.println("  MainFrame.run() error:" + e);
                } //end while
        }
        catch (Exception e)
        {
            System.out.println("  MainFrame run() error:" + e);
            e.printStackTrace();
        }
    }
    public void paint(Graphics g)
    {
        if (!LOGED)
            return;
        try
        {
            setBackground(new Color(SysInfo.backgroundcolor));
            setForeground(new Color(SysInfo.textcolor));
            SysInfo.xposition = this.getLocationOnScreen().x;
            SysInfo.yposition = this.getLocationOnScreen().y;
            Dimension dm = getSize();
            if (dm.width > 250)
                setSize(250, dm.height);
            if (dm.height < 175)
                setSize(dm.width, 175);
            dm = getSize();
            int iconSize = 34;
            if (SysInfo.bigIcon)
                iconSize = 40;
            else
                iconSize = 28;
            area = new int[20][4];
            for (int i = 0; i < 20; i++)
            {
                area[i][0] = -1;
                area[i][1] = -1;
                area[i][2] = -1;
                area[i][3] = -1;
            }

            int left = 5, right = 5;
            int realwidth = dm.width - left - right;
            area[0][0] = left;
            area[0][1] = 23;
            area[0][2] = area[0][0] + realwidth / 4;
            area[0][3] = 40; //
            area[1][0] = area[0][2] + 1;
            area[1][1] = area[0][1];
            area[1][2] = area[1][0] + realwidth / 4;
            area[1][3] = area[0][3]; //
            area[2][0] = area[1][2] + 1;
            area[2][1] = area[0][1];
            area[2][2] = area[2][0] + realwidth / 4;
            area[2][3] = area[0][3]; //
            area[3][0] = area[2][2] + 1;
            area[3][1] = area[0][1];
            area[3][2] = area[3][0] + realwidth / 4;
            area[3][3] = area[0][3]; //

            area[4][0] = left;
            area[4][1] = area[3][3] + 1;
            area[4][2] = area[4][0] + realwidth;
            area[4][3] = dm.height - 70 - 20; //head img	

            area[5][0] = left + realwidth / 2 + 1;
            area[5][1] = area[4][3] + 1;
            area[5][2] = area[5][0] + realwidth / 4;
            area[5][3] = dm.height - 70; //up
            area[6][0] = area[5][2] + 1;
            area[6][1] = area[4][3] + 1;
            area[6][2] = area[6][0] + realwidth / 4;
            area[6][3] = dm.height - 70; //down

            area[7][0] = left;
            area[7][1] = area[6][3] + 4;
            area[7][2] = area[7][0] + realwidth;
            area[7][3] = area[7][1] + 20; //add friend

            area[8][0] = left;
            area[8][1] = area[7][3] + 1;
            area[8][2] = area[8][0] + realwidth / 2;
            area[8][3] = area[8][1] + 20; //message
            area[9][0] = area[8][2] + 1;
            area[9][1] = area[7][3] + 1;
            area[9][2] = area[9][0] + realwidth / 2;
            area[9][3] = area[9][1] + 20; //modify

            area[10][0] = left;
            area[10][1] = area[9][3] + 1;
            area[10][2] = area[10][0] + realwidth;
            area[10][3] = dm.height - 5; //ver

            //begin to draw image and text
            if (!jICQ.isApplet)
            {
                Image backImg = sysinfo.getBackImage(getToolkit());
                if (backImg != null)
                    g.drawImage(backImg, 0, 0, dm.width, dm.height, this);
            }

            g.drawImage(
                jICQ.m0Image,
                area[0][0] + (area[0][2] - area[0][0]) / 2 - 8,
                area[0][3] - 16,
                16,
                16,
                this);
            g.drawImage(
                jICQ.m1Image,
                area[1][0] + (area[1][2] - area[1][0]) / 2 - 8,
                area[1][3] - 16,
                16,
                16,
                this);
            g.drawImage(
                jICQ.m2Image,
                area[2][0] + (area[2][2] - area[2][0]) / 2 - 8,
                area[2][3] - 16,
                16,
                16,
                this);
            g.drawImage(
                jICQ.m3Image,
                area[3][0] + (area[3][2] - area[3][0]) / 2 - 8,
                area[3][3] - 16,
                16,
                16,
                this);

            //g.drawImage(jICQ.head[Integer.parseInt(myIcqID.picNo)][1],left+2,area[4][3]+2,18,18,this);

            g.drawImage(
                jICQ.upImage,
                area[5][0] + (area[5][2] - area[5][0]) / 2 - 8,
                area[5][3] - 17,
                16,
                16,
                this);
            g.drawImage(
                jICQ.downImage,
                area[6][0] + (area[6][2] - area[6][0]) / 2 - 8,
                area[6][3] - 17,
                16,
                16,
                this);

            g.drawImage(
                jICQ.addImage,
                area[7][0] + (area[7][2] - area[7][0]) / 2 + 28,
                area[7][1] + 2,
                16,
                16,
                this);
            g.drawString(
                "添加好友",
                area[7][0] + (area[7][2] - area[7][0]) / 2 - 24,
                area[7][3] - 5);

            int msgAll = message.size();
            Color c = null;
            String msgcount = new Integer(msgAll).toString() + " 消息";
            if (msgAll > 0)
            {
                c = g.getColor();
                g.setColor(Color.gray);
                g.drawString(
                    msgcount,
                    area[8][0] + (area[8][2] - area[8][0]) / 2 - 15 + 2,
                    area[8][3] - 5 + 2);
                g.setColor(Color.red);
            }
            g.drawString(
                msgcount,
                area[8][0] + (area[8][2] - area[8][0]) / 2 - 15,
                area[8][3] - 5);
            if (msgAll > 0)
                g.setColor(c);

            g.drawString(
                "修改",
                area[9][0] + (area[9][2] - area[9][0]) / 2 - 18,
                area[9][3] - 5);
            g.drawImage(
                jICQ.modifyImage,
                area[9][0] + (area[9][2] - area[9][0]) / 2 + 5,
                area[9][1] + 1,
                16,
                16,
                this);
            g.drawString(
                "jICQ " + jICQ.ver,
                area[10][0] + (area[10][2] - area[10][0]) / 2 - 48,
                area[10][3] - 5);
            g.drawImage(
                jICQ.logImage,
                area[10][0],
                area[10][1],
                area[10][2] - area[10][0],
                area[10][3] - area[10][1],
                this);

            int cell = (area[4][3] - area[4][1]) / iconSize;
            Enumeration e = friend.keys();
            IcqID icqid = null;
            int offset = 3;
            for (; e.hasMoreElements();)
            {
                icqid = (IcqID) friend.get((String) e.nextElement());
                icqid.canShow = cell;
                int i = icqid.index;
                if (i >= 0 && i < cell)
                {
                    icqid.left = 10;
                    icqid.top = area[0][3] + iconSize * i + offset;
                    icqid.right = dm.width - 11;
                    icqid.bottom =
                        area[0][3] + iconSize * i + iconSize + offset;
                }
                icqid.draw(this);
            }

            int x1, y1, x2, y2;
            x1 = area[4][0];
            y1 = area[4][1];
            x2 = area[4][2];
            y2 = area[4][3];
            c = g.getColor();
            g.setColor(Color.gray);
            g.drawRect(x1, y1, x2 - x1, y2 - y1);
            g.setColor(c);

            //pastarea=1;currentarea=0;mouseMoved(area[1][0]+1,area[5][1]+1);
        }
        catch (Exception e)
        {
            System.out.println("  MainFrame paint() error:" + e);
        }
    }

    void buildPopupMenu()
    {
        pm = new PopupMenu();
        MenuItem[] mi = new MenuItem[mis.length];
        for (menuItemIndex = 0; menuItemIndex < mis.length; menuItemIndex++)
        {
            mi[menuItemIndex] = new MenuItem(mis[menuItemIndex]);
            mi[menuItemIndex]
                .addActionListener(new java.awt.event.ActionListener()
            {
                public void actionPerformed(ActionEvent e)
                {
                    processMenu(e.getActionCommand());
                }
            });
            pm.add(mi[menuItemIndex]);

        }
        add(pm);

        modifyPM = new PopupMenu();
        MenuItem[] mi1 = new MenuItem[2];
        mi1[0] = new MenuItem(modifymis[0]);
        mi1[0].addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                processMenu(modifymis[0]);
            }
        });
        mi1[1] = new MenuItem(modifymis[1]);
        mi1[1].addActionListener(new java.awt.event.ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                processMenu(modifymis[1]);
            }
        });
        modifyPM.add(mi1[0]);
        modifyPM.add(mi1[1]);
        add(modifyPM);
    }
    void processMenu(String txt)
    {
        try
        {
            //System.out.println("   mis.length="+mis.length);
            if (txt.equals(mis[0]))
                sendTo();
            if (txt.equals(mis[1]))
                delFriend();
            if (txt.equals(mis[2]))
            {
                IcqID icqid;
                if (currenticqid.getNick().equals(currenticqid.icqNo))
                {
                    icqid = getID(currenticqid);
                    repaint();
                    setFriend(icqid.icqNo, icqid);
                }
                else
                    icqid = currenticqid;
                new SubmitID(icqid, icqid.getNick(), false, false);
            }
            if (txt.equals(mis[3]))
            {
                IcqID icqid = getID(currenticqid);
                if (icqid != null)
                {
                    setFriend(icqid.icqNo, icqid);
                    repaint();
                }
                else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -