/**
* 我的好友列表(包括陌生人和黑名单)
*/
package com.qq.client.view;
import javax.swing.*;
import com.qq.client.tools.*;
import com.qq.common.Message;
import java.awt.*;
import java.awt.event.*;
public class QqFriendList extends JFrame implements ActionListener,MouseListener{
String owner;
//处理第一张卡片
JPanel jphy1,jphy2,jphy3;
JButton jphy_jb1,jphy_jb2,jphy_jb3;
JScrollPane jsp1;
JLabel []jbls;//好友列表
//处理第二张卡片,陌生人
JPanel jpmsr1,jpmsr2,jpmsr3;
JButton jpmsr_jb1,jpmsr_jb2,jpmsr_jb3;
JScrollPane jsp2;
//处理第三张卡片,黑名单
JPanel jphmd1,jphmd2,jphmd3;
JButton jphmd_jb1,jphmd_jb2,jphmd_jb3;
JScrollPane jsp3;
//把整个JFrame设置成cardLayout布局
CardLayout cl;//卡片布局
public static void main(String[] args) {
// TODO Auto-generated method stub
QqFriendList qqFriendList = new QqFriendList();
}
public QqFriendList(){
}
public QqFriendList(String ownerId){
this.owner = ownerId;
//处理第一张卡片(显示好友列表)
jphy_jb1 = new JButton("我的好友");
jphy_jb2 = new JButton("陌生人");
jphy_jb2.addActionListener(this);
jphy_jb3 = new JButton("黑名单");
jphy_jb3.addActionListener(this);
jphy1 = new JPanel(new BorderLayout());
//假定有50个好友
jphy2 = new JPanel(new GridLayout(50,1,4,4));
//给jphy2,初始化50好友
jbls = new JLabel[50];
for (int i = 0; i < jbls.length; i++) {
jbls[i] = new JLabel(i+1+"", new ImageIcon("qqImage/mm.jpg"),JLabel.LEFT);
jbls[i].setEnabled(false);
if (jbls[i].getText().equals(ownerId)) {
jbls[i].setEnabled(true);
}
jbls[i].addMouseListener(this);
jphy2.add(jbls[i]);
}
jphy3 = new JPanel(new GridLayout(2,1));
//把两个按钮加入到jphy3
jphy3.add(jphy_jb2);
jphy3.add(jphy_jb3);
jsp1 = new JScrollPane(jphy2);
jphy1.add(jphy_jb1,"North");
jphy1.add(jsp1,"Center");
jphy1.add(jphy3,"South");
//处理第二张卡片(显示陌生人列表)
jpmsr_jb1 = new JButton("我的好友");
jpmsr_jb1.addActionListener(this);
jpmsr_jb2 = new JButton("陌生人");
jpmsr_jb3 = new JButton("黑名单");
jpmsr_jb3.addActionListener(this);
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("qqImage/mm.jpg"),JLabel.LEFT);
jbls2[i].addMouseListener(this);
jpmsr2.add(jbls2[i]);
}
jpmsr3 = new JPanel(new GridLayout(2,1));
//把两个按钮加入到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");
//处理第三张卡片(显示黑名单列表)
jphmd_jb1 = new JButton("我的好友");
jphmd_jb1.addActionListener(this);
jphmd_jb2 = new JButton("陌生人");
jphmd_jb2.addActionListener(this);
jphmd_jb3 = new JButton("黑名单");
jphmd1 = new JPanel(new BorderLayout());
//假定有20个陌生人
jphmd2 = new JPanel(new GridLayout(5,1,4,4));
//给jphmd2,初始化5黑名单
JLabel []jbls3 = new JLabel[5];
for (int i = 0; i < jbls3.length; i++) {
jbls3[i] = new JLabel(i+1+"", new ImageIcon("qqImage/mm.jpg"),JLabel.LEFT);
jbls3[i].addMouseListener(this);
jphmd2.add(jbls3[i]);
}
jphmd3 = new JPanel(new GridLayout(3,1));
//把三个按钮加入到jphmd3
jphmd3.add(jphmd_jb1);
jphmd3.add(jphmd_jb2);
jphmd3.add(jphmd_jb3);
jsp3 = new JScrollPane(jphmd2);
jphmd1.add(jphmd3,"North");
jphmd1.add(jsp3,"Center");
//整体显示
cl = new CardLayout();
this.setLayout(cl);
this.add(jphy1,"1");
this.add(jpmsr1,"2");
this.add(jphmd1,"3");
//在窗口显示自己的编号
this.setTitle(ownerId);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,600);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//如果点击了陌生人按钮,就显示第二张卡片
if(e.getSource()==jphy_jb2 || e.getSource()==jphmd_jb2){
//显示陌生人
cl.show(this.getContentPane(), "2");
}else if (e.getSource()==jpmsr_jb1 || e.getSource()==jphmd_jb1) {
//显示好友
cl.show(this.getContentPane(), "1");
}else if (e.getSource()==jphy_jb3 || e.getSource()==jpmsr_jb3) {
//显示黑名单
cl.show(this.getContentPane(), "3");
}
}
//更新在线好友状况
public void updateFriend(Message m) {
String onLineFriend[] = m.getCon().split(" ");
for (int i = 0; i < onLineFriend.length; i++) {
jbls[Integer.parseInt(onLineFriend[i])-1].setEnabled(true);
}
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
//响应用户双击事件,并得到好友的编号
if (e.getClickCount()==2) {
//得到该好友的编号
String friendNo = ((JLabel)e.getSource()).getText();
QqChat qqChat = new QqChat(owner,friendNo);
//把聊天界面加入到管理类
ManageQqChat.addQqChat(this.owner+" "+friendNo, qqChat);
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
JLabel jl = (JLabel)e.getSource();
jl.setForeground(Color.red);
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
JLabel jl = (JLabel)e.getSource();
jl.setForeground(Color.black);
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
QQ-java源码-UML分析图-多人聊天.rar (70个子文件)
qqShanzhai.mdl 303KB
qqImage
xiangdao.gif 947B
quxiao.gif 860B
denglu.gif 868B
qq.gif 1KB
clear.gif 990B
mm.jpg 900B
tou.gif 6KB
QqServer
bin
com
qq
server
tools
model
SerConClientThread.class 3KB
QqServerUser.class 301B
ManageClientThread.class 2KB
MyQqServer.class 3KB
db
SqlHelper.class 286B
view
MyServerFrame.class 1KB
common
User.class 737B
MessageType.class 422B
Message.class 1KB
.settings
org.eclipse.jdt.core.prefs 629B
src
com
qq
server
tools
model
SerConClientThread.java 2KB
MyQqServer.java 2KB
ManageClientThread.java 655B
QqServerUser.java 67B
db
SqlHelper.java 61B
view
MyServerFrame.java 1009B
common
MessageType.java 483B
User.java 378B
Message.java 841B
.project 384B
TestServer
bin
com
common
User.class 719B
test1
MyServer.class 2KB
.settings
org.eclipse.jdt.core.prefs 629B
src
com
common
User.java 348B
test1
MyServer.java 794B
.project 386B
.classpath 301B
.classpath 301B
QqClient
bin
com
qq
client
tools
ClientConServerThread.class 2KB
ManageQqFriendList.class 1008B
ManageClientConServerThread.class 1KB
ManageQqChat.class 961B
model
QqClientUser.class 584B
QqClientConServer.class 2KB
view
QqClientLogin.class 5KB
QqFriendList.class 6KB
QqChat.class 4KB
common
User.class 737B
MessageType.class 422B
Message.class 1KB
qqImage
xiangdao.gif 947B
quxiao.gif 860B
denglu.gif 868B
qq.gif 1KB
clear.gif 990B
mm.jpg 900B
tou.gif 6KB
.settings
org.eclipse.jdt.core.prefs 629B
src
com
qq
client
tools
ManageQqFriendList.java 478B
ManageQqChat.java 470B
ClientConServerThread.java 1KB
ManageClientConServerThread.java 554B
model
QqClientUser.java 193B
QqClientConServer.java 1KB
view
QqFriendList.java 6KB
QqChat.java 2KB
QqClientLogin.java 4KB
common
MessageType.java 483B
User.java 378B
Message.java 841B
.project 384B
.classpath 301B
共 70 条
- 1
资源评论
- xiyouly2012-11-04这几天正在看着个,挺有帮助的、
- mazhaohuiwang2017-12-18怎么看UML图啊,找不到啊
the_fire
- 粉丝: 663
- 资源: 25
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功