package com.qq.client.view;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
/**
* 我的好友列表(包括,陌生人,黑名单)
*
* 用到卡片布局
*
* @author Eiffel
*
*/
public class QqFriendList extends JFrame implements ActionListener {
// 我的好友面板(分页1)
JPanel JPanelFenYe1 = null;
// 上部一个按钮
JButton jbtFenYe1Up = null;
// 中部(一个滚动条,滚动条中包含一个面板)
JScrollPane jspFenYe1 = null;
JPanel jpFenYe1Center = null;
// 下部一个JPanel(包含两个按钮)
JPanel jpFenYe1Down = null;
JButton jbtFenYe1Down1 = null;
JButton jbtFenYe1Down2 = null;
// 陌生人面板(分页2)
JPanel JPanelFenYe2 = null;
// 上部(两个按钮)
JPanel jpFenYe2Up = null;
JButton jbtFenYe2Up1 = null;
JButton jbtFenYe2Up2 = null;
// 中部一个滚动条(包含一个面板)
JScrollPane jspFenYe2 = null;
JPanel jpFenYe2Center = null;
// 下部(一个按钮)
JButton jbtFenYe2Down = null;
// 黑名单面板(分页3)
JPanel JPanelFenYe3 = null;
// 上部(三个按钮)
JPanel jpFenYe3Up = null;
JButton jbtFenYe3Up1 = null;
JButton jbtFenYe3Up2 = null;
JButton jbtFenYe3Up3 = null;
// 中部一个滚动条(包含一个面板)
JScrollPane jspFenYe3 = null;
JPanel jpFenYe3Center = null;
// 卡片布局
CardLayout cardLayout = null;
// 好友集合
ArrayList<Friend> friendList = null;
// 构造方法
public QqFriendList() {
// 初始化
cardLayout = new CardLayout();
JPanelFenYe1 = getJPanelFenYe1();
JPanelFenYe2 = getJPanelFenYe2();
JPanelFenYe3 = getJPanelFenYe3();
// 设置窗体为卡片布局
this.setLayout(cardLayout);
// 添加
this.add(JPanelFenYe1, "1");
this.add(JPanelFenYe2, "2");
this.add(JPanelFenYe3, "3");
// 属性
this.setTitle("QQ好友列表");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setBounds(500, 100, 150, 500);
this.setVisible(true);
}
public static void main(String args[]) {
new QqFriendList();
}
// 我的好友面板
public JPanel getJPanelFenYe1() {
// 初始化面板为Border布局
JPanelFenYe1 = new JPanel(new BorderLayout());
// 上部
jbtFenYe1Up = new JButton("我的好友");
JPanelFenYe1.add(jbtFenYe1Up, BorderLayout.NORTH);
// 中部
jpFenYe1Center = new JPanel(new GridLayout(20, 1, 4, 4));
jspFenYe1 = new JScrollPane(jpFenYe1Center);
// 添加好友到jpCenter
for (int i = 1; i <= 20; i++) {
JLabel jl = new JLabel(Integer.toString(i), JLabel.CENTER);
jpFenYe1Center.add(jl);
}
JPanelFenYe1.add(jspFenYe1, BorderLayout.CENTER);
// 下部
jbtFenYe1Down1 = new JButton("陌生人");
jbtFenYe1Down2 = new JButton("黑名单");
jpFenYe1Down = new JPanel(new GridLayout(2, 1));
jpFenYe1Down.add(jbtFenYe1Down1);
jpFenYe1Down.add(jbtFenYe1Down2);
JPanelFenYe1.add(jpFenYe1Down, BorderLayout.SOUTH);
// 添加监听
// jbtFenYe1Up.addActionListener(this);
jbtFenYe1Down1.addActionListener(this);
jbtFenYe1Down2.addActionListener(this);
return JPanelFenYe1;
}
// 陌生人面板
public JPanel getJPanelFenYe2() {
// 声明
JPanelFenYe2 = new JPanel(new BorderLayout());
// 初始化
// 上部
jpFenYe2Up = new JPanel(new GridLayout(2, 1));
jbtFenYe2Up1 = new JButton("我的好友");
jbtFenYe2Up2 = new JButton("陌生人");
jpFenYe2Up.add(jbtFenYe2Up1);
jpFenYe2Up.add(jbtFenYe2Up2);
// 中部
jpFenYe2Center = new JPanel(new GridLayout(20, 1, 4, 4));
jspFenYe2 = new JScrollPane(jpFenYe2Center);
for (int i = 1; i <= 20; i++) {
JLabel jl = new JLabel(Integer.toString(i), JLabel.CENTER);
jpFenYe2Center.add(jl);
}
// 下部
jbtFenYe2Down = new JButton("黑名单");
// 添加
// 上部
JPanelFenYe2.add(jpFenYe2Up, BorderLayout.NORTH);
// 中部
JPanelFenYe2.add(jspFenYe2);
// 下部
JPanelFenYe2.add(jbtFenYe2Down, BorderLayout.SOUTH);
// 监听按钮
jbtFenYe2Up1.addActionListener(this);
// jbtFenYe2Up2.addActionListener(this);
jbtFenYe2Down.addActionListener(this);
return JPanelFenYe2;
}
// 黑名单好友面板
public JPanel getJPanelFenYe3() {
// 声明
JPanelFenYe3 = new JPanel(new BorderLayout());
// 初始化
// 上部
jpFenYe3Up = new JPanel(new GridLayout(3, 1));
jbtFenYe3Up1 = new JButton("我的好友");
jbtFenYe3Up2 = new JButton("陌生人");
jbtFenYe3Up3 = new JButton("黑名单");
jpFenYe3Up.add(jbtFenYe3Up1);
jpFenYe3Up.add(jbtFenYe3Up2);
jpFenYe3Up.add(jbtFenYe3Up3);
// 中部
jpFenYe3Center = new JPanel(new GridLayout(20, 1, 4, 4));
jspFenYe3 = new JScrollPane(jpFenYe3Center);
for (int i = 1; i <= 20; i++) {
JLabel jl = new JLabel(Integer.toString(i), JLabel.CENTER);
jpFenYe3Center.add(jl);
}
// 添加
JPanelFenYe3.add(jpFenYe3Up, BorderLayout.NORTH);
JPanelFenYe3.add(jspFenYe3, BorderLayout.CENTER);
// 监听按钮
jbtFenYe3Up1.addActionListener(this);
jbtFenYe3Up2.addActionListener(this);
return JPanelFenYe3;
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == jbtFenYe1Down1 || e.getSource() == jbtFenYe3Up2) {
// 陌生人
cardLayout.show(this.getContentPane(), "2");
} else if (e.getSource() == jbtFenYe2Up1
|| e.getSource() == jbtFenYe3Up1) {
// 我的好友
cardLayout.show(this.getContentPane(), "1");
} else if (e.getSource() == jbtFenYe1Down2
|| e.getSource() == jbtFenYe2Down) {
// 黑名单
cardLayout.show(this.getContentPane(), "3");
}
}
}
// 好友信息
class Friend {
// 声明成员
private Image touxiang;
private String name;
private String sex;
private int age;
// 构造方法
public Friend(String name, String sex, int age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}