标题:怎样制作QQ好友列表的界面?
只看楼主
xudongcsharp
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:129
专家分:156
注 册:2009-5-31
结帖率:53.33%
已结贴  问题点数:10 回复次数:8 
怎样制作QQ好友列表的界面?
现在在搞Socket通信,想做一个QQ类似的东西玩玩,
觉得那个好友列表的界面好简单,只是组件的显示隐藏就好了!
可是搞了好久都没出结果,布局出现了问题,
请高手指点一二!
搜索更多相关主题的帖子: 界面 好友 列表 制作 
2010-05-04 19:19
wenkai0427
Rank: 1
等 级:新手上路
帖 子:27
专家分:8
注 册:2009-4-20
得分:2 
山寨版qq源码.素材.zip (71.83 KB)

看看这个怎么样
2010-05-06 01:18
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
得分:2 
swing做个QQ列表界面简直可以是轻而易举了,放一个没有边框的table就可以了
2010-05-06 02:30
baifenghan
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:258
专家分:952
注 册:2006-3-17
得分:0 
我写了一个简单的,自己改改,要睡觉了。

package qq;


public class Friend {

    //昵称
    private String displayName;
    //唯一标识
    private int id;
    //是否在线
    private boolean isOnLine;
   
    public Friend(String displayName, int id, boolean isOnLine) {
        this.displayName = displayName;
        this.id = id;
        this.isOnLine = isOnLine;
    }

    public String getDisplayName() {
        return displayName;
    }

    public void setDisplayName(String displayName) {
        this.displayName = displayName;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public boolean isOnLine() {
        return isOnLine;
    }

    public void setOnLine(boolean isOnLine) {
        this.isOnLine = isOnLine;
    }

}


package qq;

import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPanel;


public class FriendListPnl extends JPanel {
   
    private List<Friend> friends;
    private JButton[] friendList;
   
    public FriendListPnl(List<Friend> friends) {
        
        this.friends = friends;
        initFriendList();
        initGUI();
    }
   
    private void initGUI()
    {
        this.setLayout(new GridBagLayout());
        GridBagConstraints constraints = new GridBagConstraints();
        constraints.fill = GridBagConstraints.HORIZONTAL;
        constraints.weightx = 1.0;
        constraints.gridx = 0;
        constraints.ipadx = 1;
        constraints.ipady = 1;
        constraints.anchor = GridBagConstraints.NORTHWEST;
        for (int i = 0; i < friendList.length; i++) {
            constraints.gridy = i;
            if (i == friendList.length - 1)
            {
                constraints.weighty = 1.0;
            }
            this.add(friendList[i], constraints);
        }
    }
   
    private void initFriendList()
    {
        friendList = new JButton[friends.size()];
        Dimension d = new Dimension(100, 22);
        JButton friend = null;
        Friend friendInfo = null;
        for (int i = 0; i < friendList.length; i++) {
            friend = new JButton();
            friend.addActionListener(new ActionListener() {
               
                @Override
                public void actionPerformed(ActionEvent e) {
                    JOptionPane.showMessageDialog(null, "您好!");
                }
            });
            friend.setBorder(null);
            friendInfo = friends.get(i);
            friend.setText(new StringBuffer().append(friendInfo.getDisplayName())
                    .append("(").append(friendInfo.getId()).append(")").toString());
            friend.setPreferredSize(d);
            friend.setEnabled(friendInfo.isOnLine());
            friendList[i] = friend;
        }
        
    }

}


package qq;

import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JFrame;
import javax.swing.JScrollPane;

public class TestFrame {
   
    public static void main(String[] args) {
        
        Friend f1 = new Friend("天下", 22, true);
        Friend f2 = new Friend("倚天", 21, false);
        Friend f3 = new Friend("屠龙", 20, true);
        
        List<Friend> list = new ArrayList<Friend>();
        list.add(f1);
        list.add(f2);
        list.add(f3);
        
        JFrame frame = new JFrame("QQ");
        frame.setSize(150, 350);
        Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
        frame.setLocation(new Point(d.width - frame.getWidth() - 25, 10));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(new JScrollPane(new FriendListPnl(list)));
        
        frame.setVisible(true);
        
    }

}
2010-05-06 03:57
JAVATWO
Rank: 2
等 级:论坛游民
帖 子:16
专家分:16
注 册:2010-4-22
得分:2 
前来学习

我来也
2010-05-06 14:44
xudongcsharp
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:129
专家分:156
注 册:2009-5-31
得分:0 
谢谢各位!
2010-05-10 19:01
爱OO你
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:30
专家分:181
注 册:2010-4-13
得分:2 
来看看

我就是我
2010-05-11 00:55
wtuaimmmm
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-12 11:45
ljwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:46
专家分:192
注 册:2009-9-18
得分:0 
.....
2010-05-19 00:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-305370-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.748288 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved