QqFriendList.java

此为韩顺平老师QQ开发项目第二讲好友列表

//我的好友列表,也包括陌生人和黑名单;

package com.qq.client.view;

import  javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class QqFriendList extends JFrame implements ActionListener,MouseListener{

    //处理第一张卡片(好友列表)
    //jphy1代表整个界面,jphy2代表中间的我的好友清单,jphy3包含陌生人和黑名单两个按钮;
    JPanel jphy1,jphy2,jphy3;
    JButton jphy_jb1,jphy_jb2,jphy_jb3;
    JScrollPane jsp1;

    //处理第二张卡片(陌生人)
    //jpmsr1代表整个界面,jpmsr2代表中间陌生人列表,jpmsr3包含我的好友和陌生人两个按钮;
    JPanel jpmsr1,jpmsr2,jpmsr3;
    JButton jpmsr_jb1,jpmsr_jb2,jpmsr_jb3;
    JScrollPane jsp2;

    //把整个JFrame设置成CardLayout布局
    CardLayout cl;

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        QqFriendList qqFriendList=new QqFriendList();
    }

    public QqFriendList() {

        //处理第一张卡片(显示好友列表)
        //第一张卡片我的好友整个界面jphy1,选择BorderLayout布局,其包括南北东西中;
        jphy1=new JPanel(new BorderLayout());

        //标注三个按钮;
        jphy_jb1=new JButton("我的好友");
        jphy_jb2=new JButton("陌生人");
        //监听;
        jphy_jb2.addActionListener(this);
        jphy_jb3=new JButton("黑名单");

        //处理中部的jphy2;
        //假设有50个好友(表格布局);
        //jphy2代表我的好友清单;
        jphy2=new JPanel(new GridLayout(50,1,4,4));

        //给jphy2初始化50好友
        JLabel []jbls=new JLabel[50];

        for(int i=0;i<jbls.length;i++){

            jbls[i]=new JLabel(i+1+"",new ImageIcon("image/mm.jpg"),JLabel.LEFT);
            jphy2.add(jbls[i]);

            }

        //处理南部;
        //表格布局;
        jphy3=new JPanel(new GridLayout(2,1));

        //把2个按钮加入到jphy3;
        jphy3.add(jphy_jb2);
        jphy3.add(jphy_jb3);

        //jphy2代表中间的我的好友清单,将jphy2加入jsp1,则中部处理完成;
        jsp1=new JScrollPane(jphy2);

        //对jphy1即整个界面初始化;
        jphy1.add(jphy_jb1,"North");//按钮“我的好友”;
        jphy1.add(jsp1,"Center");//加入JScrollPane;
        jphy1.add(jphy3,"South");//jphy3包含陌生人和黑名单两个按钮;

        //this.add(jphy1,"Center");




        //真正处理第二张卡片
        jpmsr_jb1=new JButton("我的好友");
        //监听;
        jpmsr_jb1.addActionListener(this);
        jpmsr_jb2=new JButton("陌生人");
        jpmsr_jb3=new JButton("黑名单");

        第二张卡片陌生人整个界面jpmsr1,选择BorderLayout布局,其包括南北东西中;
        jpmsr1=new JPanel(new BorderLayout());

        //处理陌生人列表;
        //假定有20个 陌生人
        jpmsr2=new JPanel(new GridLayout(20,1,4,4));

        //给jpmsr2初始化20个陌生人;
        JLabel []jbls2=new JLabel[20];
        for(int i=0;i<jbls2.length;i++){
            jbls2[i]=new JLabel(i+1+"",new ImageIcon("image/mm.jpg"),JLabel.LEFT);

            //鼠标监听;
            jbls[i].addMouseListener(this);

            jpmsr2.add(jbls2[i]);       

            }

        //处理北部;
        //jpmsr3包含我的好友和陌生人两个按钮;
        jpmsr3=new JPanel(new GridLayout(2,1));
        //把2个按钮加入到jphy3;
        jpmsr3.add(jpmsr_jb1);
        jpmsr3.add(jpmsr_jb2);

        //处理中部;
        jsp2=new JScrollPane(jpmsr2);

        jpmsr1.add(jpmsr3,"North");//加入北部;
        jpmsr1.add(jsp2,"Center");//加入中部;
        jpmsr1.add(jpmsr_jb3,"South");//加入黑名单按钮;

        //卡片布局;
        cl=new CardLayout();
        this.setLayout(cl);
        this.add(jphy1,"1");//第一张卡片好友整个界面;
        this.add(jpmsr1,"2");//第二张卡片陌生人整个界面;

        this.setSize(140,500);

        this.setVisible(true);

    }

    @Override
    public void actionPerformed(ActionEvent arg0) {
        // TODO Auto-generated method stub
        //如果点击了陌生人按钮,就显示第二张卡片
        if(arg0.getSource()==jphy_jb2){
            cl.show(this.getContentPane(),"2");

        }
        else if(arg0.getSource()==jpmsr_jb1){
            cl.show(this.getContentPane(), "1");
        }
    }

    @Override
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub
        //相应用户双击的事件,并得到好友的编号;
        if(e.getClickCount()==2){
            //得到该好友的编号;
            String friendNo=((JLabel)e.getSource()).getText();
            //System.out.println("你希望和"+friendNo+"聊天");
            new QqChat(friendNo);
        }
    }

    @Override
    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
        JLabel j1=(JLabel)e.getSource();
        j1.setForeground(Color.red);
    }

    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
        JLabel j1=(JLabel)e.getSource();
        j1.setForeground(Color.black);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值