好友列表的制作: JPanel 是BorderLayout 分析好友面板: North : :“我的好友”、“陌生人”、“黑名单”采用卡片布局来实现。 点击:‘我的好友’显示 卡片1, 点击:“陌生人” 显示卡片2. 。。 。 Center: 中间是个:JScrollPane ,这个控件, 这个控件放了一个JPanel (GridLayout(10,1)) 好友的头像,是JLabel South: JPanel 布局是 GridLayout(2.1); 如何做到,一点陌生人按钮就让他显示第二张卡片 ??? 这是难点。 同时,对于整个大的框架的布局也是一个大难点。 第一张卡片和第二张卡片它很多东西都是相似的。 如何为每一个卡片指定一个按钮,达到点击相应的按钮,可以显示相应的卡片??? 总结: 首先这是一个卡片,有3个JPanel 这个最大的Panel 是一个BorderLayout 北部: /* 好友列表:(也包括陌生人,黑名单) */ import javax.swing.*; import java.awt.*; import java.awt.event.*; public class QqFriendList extends JFrame implements ActionListener,MouseListener { // 处理第一张卡片:好友面板 jphy JPanel jphy1,jphy2,jphy3; // 第一张卡片当中的三个按钮 JButton jphy_jb1,jphy_jb2,jphy1_jb2; JScrollPane jspl; // 处理第二张卡片 (陌生人) JPanel jpmsr1,jpmsr2,jpmsr3; JButton jpmsr1_jb1,jpmsr2_jb2,jpmsr_jb3; JScrollPane jsp2; //把整个JFrame 设置成一个cardLayout CarLayout cl; public static void main(String[] args) { QqFriendList qq =new QqFriendList(); } public QqFriendList() { jphy_jb1=new JButton("我的好友"); jphy_jb2=new JButton("陌生人"); jphy_jb3=new JButton("黑名单"); jphy1=new JPanel(new BorderLayout()); // 假定有50个好友 , GridLayout(50,1,4,4) 其中,4,4,是设置间距的。 jphy2=new JPanel(new GridLayout(50,1,4,4)); // 给jphy2,初始化50个好友 JLabel [] jbls =new JLabel[50]; for(int i=0;i