我觉得可以把 数据的最终添加方法写在 对方同意之时。
目前成都创新互联公司已为1000多家的企业提供了网站建设、域名、虚拟空间、成都网站托管、企业网站设计、上高网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
你添加好友时只是发送一个请求消息数据过去,并不实现朋友数据的增加。 对方收到数据,如果同意则此时 执行最终的数据添加,双方都添加一个好友。 不同意则回复一则提示消息就OK。
用数据库了吧? 可用这思路写添加。
好友类里面包括姓名 联系方式 邮箱等等
class Friend{
String name;
String contact;
String email;
Friend(String name,String contact,String email){
构造函数
}
getter
setter
}
上面只是个雏形自己完善
用一个ArrayListFriend来储存所有的Friends
取,删或者增直接调用ArrayList的函数
用swing来显示所有的好友。。for循环读取ArrayList
然后批量加入swing GUI显示就行
可以用JTable或者直接用JPanel等等
import javax.swing.*;
import javax.swing.text.JTextComponent;
import java.awt.*;
import java.awt.event.*;
public class ChatFrame extends JFrame implements ActionListener {
private JLabel id;
private JLabel group;
private JLabel allas;
public JTextField inputId;
public JTextField inputGroup;
public JTextField inputAllas;
private JButton submit;
private JPanel pane;
public ChatFrame(){
id = new JLabel("Id");
group = new JLabel("Group");
allas = new JLabel("Allas");
inputId = new JTextField();
inputGroup = new JTextField();
inputAllas = new JTextField();
submit = new JButton("确定");
pane=new JPanel();
pane.setLayout(null);
this.getContentPane().add(pane).setBackground(Color.white);
this.getContentPane().add(pane);
pane.add(id);
pane.add(group);
pane.add(allas);
pane.add(inputId);
pane.add(inputGroup);
pane.add(inputAllas);
pane.add(submit);
id.setBounds(5,5,50,30);
group.setBounds(5,35,50,30);
allas.setBounds(5,65,50,50);
inputId.setBounds(70,5,100,30);
inputGroup.setBounds(70,35,100,30);
inputAllas.setBounds(70,65,100,30);
submit.setBounds(150,100,60,30);
submit.addActionListener(this);
this.setSize(240,180);
this.setLocation(300,300);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
//按键监听,可添加连接数据库的操作
}
public static void main(String args[]){
new ChatFrame();
}
}
首先要有个存好友的数据结构:friendList
既然是QQ,那么肯定有好友类别了,一个类别底下的子节点为一个好友。
然后根据这个数据结构画出这个Jtree,
第一列字节点为好友类别,
第二列子节点为好友,给这些字节点添加鼠标点击事件,点击后弹出想要的东西。
最后,在接收信息进程内添加一个方法,即一旦有好友上线或者下线则接收改变的好友的信息,之前的存好友的数据结构也随之改变,
再根据这个数据结构改变这个JTree,不会改变的话就重新画一个,tree=new JTree();(tree为之前的列表),这样就可以了。
思路就是加一张好友表,如表ID,用户id,用户id2,是否为好友;加一个好友,通过Java操作数据库,添加一条数据,并显示出来。
package com.tanyue;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame frame = new JFrame("box");
JComboBox box = new JComboBox();
box.addItem("好友1");
box.addItem("好友2");
box.addItem("好友3");
box.addItem("好友4");
frame.setBounds(0, 0, 300, 300);
frame.add(box);
frame.setVisible(true);
}
}