📄 mainwin.java
字号:
receivePacket=new DatagramPacket(array,array.length);
receiveSocket.receive(receivePacket);
byte[] data=receivePacket.getData();
String infofromip=receivePacket.getAddress().getHostAddress().toString().trim();
index3=0;
received=new String(data,0,data.length);
received.trim();
// System.out.println("get"+received.substring(0,6));
String tempstr;
int tx;
//friend online
if(received.substring(0,6).equals("online")){//如果有好友上线就变彩色
tempstr=received.substring(6).trim();
// System.out.println("str"+tempstr);
tempgetjicq=Integer.parseInt(tempstr);
// System.out.println("id"+tempgetjicq);
do{ tx= Integer.parseInt(friendjicq.get(index3).toString());
//System.out.println("tx"+tx);
if(tempgetjicq==tx)break;
index3++;
}while(index3<friendjicq.size());
friendips.setElementAt(infofromip,index3);
// status.setElementAt(,index3);
//System.out.println(index3);
DefaultListModel mm3=(DefaultListModel)list.getModel();
int picid=Integer.parseInt(picno.get(index3).toString());
mm3.setElementAt(new Object[]{friendnames.get(index3),new ImageIcon(picsonline[picid])},index3);
}//end online
//friend offline
else if(received.substring(0,7).equals("offline")){//如果有好友下线就变灰色
tempstr=received.substring(7).trim();
System.out.println("str"+tempstr);
tempgetjicq=Integer.parseInt(tempstr);
System.out.println("id"+tempgetjicq);
do{ tx= Integer.parseInt(friendjicq.get(index3).toString());
System.out.println("tx"+tx);
if(tempgetjicq==tx)break;
index3++;
}while(index3<friendjicq.size());
infofromip="null";
friendips.setElementAt(infofromip,index3);
// status.setElementAt(,index3);
System.out.println(index3);
DefaultListModel mm3=(DefaultListModel)list.getModel();
int picid=Integer.parseInt(picno.get(index3).toString());
mm3.setElementAt(new Object[]{friendnames.get(index3),new ImageIcon(picsoffline[picid])},index3);
}//end friend offline
//someone add me as friend
else if(received.substring(0,9).equals("oneaddyou")){
//如果有人加我为好有,选择加还是不
tempstr=received.substring(9).trim();
System.out.println("str"+tempstr);
tempgetjicq=Integer.parseInt(tempstr);
System.out.println("id"+tempgetjicq);
//JOptionPane.showMessageDialog(this,"收到"+tempgetjicq+"addyou","ok",JOptionPane.INFORMATION_MESSAGE);
oneaddme.setText(tempgetjicq+"把你加为好友");
OneAddyou.setBounds(400,300,250,200);
OneAddyou.show();
} //endsomeone add me as friend
else{//否则就显示收到消息
index4=0;
// String infofromip=receivePacket.getAddress().getHostAddress().toString().trim();
do{
String friendip=friendips.get(index4).toString().trim();
if (infofromip.equals(friendip)){
String nameinfo=friendnames.get(index4).toString().trim();
JOptionPane.showMessageDialog(this,"收到"+nameinfo+"的消息","ok",JOptionPane.INFORMATION_MESSAGE);
fromunknow=false;
break; }//if
index4++;
if(index4>=friendnames.size()){
fromunknow=true;//收到陌生人的消息
JOptionPane.showMessageDialog(this,"收到陌生人"+infofromip+"的消息","ok",JOptionPane.INFORMATION_MESSAGE);
}
}while(index4<friendnames.size());//while
System.out.println(index4);
};
}catch(IOException ex){ex.printStackTrace();}
}
}//run end
//**********************
//以下创建数据报
public void CreatUDP(){
try{sendSocket=new DatagramSocket();
receiveSocket=new DatagramSocket(udpPORT);
// System.out.println("udp ok");
}catch(SocketException se){se.printStackTrace();System.out.println("false udp");}
}// creat udp end
//main ****************
public MainWin(int s,String sername,int serport) {//主程序构造函数
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
myjicq=s;
server=sername;
serverport=serport;
jbInit();
ConnectServer(myjicq);
CreatUDP();
findf=new FindFriend2(myjicq,server,serverport);
findf.setBounds(200,150,300,300);
thread=new Thread(this);
thread.start();
}
catch(Exception e) {
e.printStackTrace();
}
}//end main*****
/**Component initialization*/
private void jbInit() throws Exception {//主程序界面
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(flowLayout1);
this.getContentPane().setBackground(new Color(132, 158, 203));
this.setResizable(false);
this.setSize(new Dimension(206, 420));
this.setTitle("Frame Title");
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
});
ListModel model=new NameAndPicListModel(friendnames,picsonline);
ListCellRenderer renderer=new NameAndPicListCellRenderer();
list=new JList(model);
list.setBackground(new Color(255, 255, 210));
list.setAlignmentX((float) 1.0);
list.setAlignmentY((float) 1.0);
list.setCellRenderer(renderer);
list.setVisibleRowCount(7);
list.addMouseListener(new MainWin_list_mouseAdapter(this));
list.setSize(380,200);
jButton1.setText("我的好友");
jButton1.setFont(new java.awt.Font("Dialog", 0, 12));
jButton1.setBorderPainted(false);
jButton1.setContentAreaFilled(false);
jButton1.setIcon(icon1);
jButton1.setPressedIcon(icon6);
direct.setText("直接加友");
direct.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
direct_mouseClicked(e);
}
});
direct.addMouseListener(new MainWin_direct_mouseAdapter(this));
direct.setFont(new java.awt.Font("Dialog", 0, 12));
direct.setToolTipText("about");
direct.setPressedIcon(icon6);
ok.setText("OK");
ok.setBounds(new Rectangle(111, 89, 97, 29));
ok.addMouseListener(new MainWin_ok_mouseAdapter(this));
info.setFont(new java.awt.Font("Dialog", 0, 12));
info.setMaximumSize(new Dimension(200, 100));
info.setMinimumSize(new Dimension(200, 100));
info.setText("你好! 欢迎使用JAVAICQ");
info.setBounds(new Rectangle(-31, 21, 353, 66));
sendmessage.setFont(new java.awt.Font("Dialog", 0, 12));
sendmessage.setText("发送消息");
sendmessage.addMouseListener(new MainWin_sendmessage_mouseAdapter(this));
getmessage.setFont(new java.awt.Font("Dialog", 0, 12));
getmessage.setText("接收消息");
getmessage.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
getmessage_mousePressed(e);
}
});
lookinfo.setFont(new java.awt.Font("Dialog", 0, 12));
lookinfo.setText("查看资料");
lookinfo.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
lookinfo_mousePressed(e);
}
});
Container dialogcon=about.getContentPane();
about.setSize(200,200);
Container senddiapane=senddata.getContentPane();
dialogcon.setLayout(null);
dialogcon.setSize(100,100);
//senddiapane.setLayout(null);
name.setFont(new java.awt.Font("Dialog", 0, 12));
name.setForeground(SystemColor.activeCaption);
name.setText("呢称");
name.setBounds(new Rectangle(35, 56, 41, 18));
nametext.setFont(new java.awt.Font("Dialog", 0, 12));
nametext.setBounds(new Rectangle(91, 54, 90, 22));
icq.setFont(new java.awt.Font("Dialog", 0, 12));
icq.setForeground(SystemColor.activeCaption);
icq.setText("JAVAICQ");
icq.setBounds(new Rectangle(211, 58, 64, 18));
icqno.setFont(new java.awt.Font("Dialog", 0, 12));
icqno.setBounds(new Rectangle(287, 53, 80, 22));
send.setIcon(icon1);
send.setText("发送");
send.setBounds(new Rectangle(72, 239, 97, 27));
send.setFont(new java.awt.Font("Dialog", 0, 12));
send.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
send_mouseClicked(e);
}
});
senddiapane.setLayout(null);
cancel.setIcon(icon1);
cancel.setText("取消");
cancel.setBounds(new Rectangle(228, 239, 94, 27));
cancel.setFont(new java.awt.Font("Dialog", 0, 12));
cancel.addMouseListener(new MainWin_cancel_mouseAdapter(this));
contentPane.setFont(new java.awt.Font("Dialog", 0, 12));
contentPane.setAlignmentX((float) 200.0);
contentPane.setAlignmentY((float) 200.0);
senddata.setResizable(false);
senddata.getContentPane().setBackground(Color.lightGray);
sendtext.setRows(10);
sendtext.setMinimumSize(new Dimension(20, 10));
sendtext.setFont(new java.awt.Font("Dialog", 0, 12));
sendtext.setMaximumSize(new Dimension(20, 10));
sendtext.setBounds(new Rectangle(30, 94, 341, 118));
jLabel2.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel2.setText("This is LJ");
jLabel2.setBounds(new Rectangle(20, 82, 89, 18));
//senddiapane.setBackground(new Color(58, 112, 165));
find.setFont(new java.awt.Font("Dialog", 0, 12));
find.setToolTipText("");
find.setText("查找");
find.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
find_mouseClicked(e);
}
});
getdata.getContentPane().setLayout(null);
getdata.setSize(400,300);
jLabel3.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel3.setText("昵称");
jLabel3.setBounds(new Rectangle(48, 51, 41, 18));
getfromname.setFont(new java.awt.Font("Dialog", 0, 12));
getfromname.setBounds(new Rectangle(113, 48, 82, 22));
jLabel4.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel4.setText("JiCQ");
jLabel4.setBounds(new Rectangle(210, 50, 41, 18));
getfromjicq.setFont(new java.awt.Font("Dialog", 0, 12));
getfromjicq.setBounds(new Rectangle(265, 48, 77, 22));
getinfo.setFont(new java.awt.Font("Dialog", 0, 12));
getinfo.setBounds(new Rectangle(49, 97, 294, 124));
getok.setText("确定");
getok.setBounds(new Rectangle(157, 251, 79, 29));
getok.setFont(new java.awt.Font("Dialog", 0, 12));
getok.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
getok_mouseClicked(e);
}
});
update.setFont(new java.awt.Font("Dialog", 0, 12));
update.setText("更新");
update.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
update_mouseClicked(e);
}
});
delfriend.setFont(new java.awt.Font("Dialog", 0, 12));
delfriend.setText("删除好友");
delfriend.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
delfriend_mousePressed(e);
}
});
myinfo.setFont(new java.awt.Font("Dialog", 0, 12));
myinfo.setMaximumSize(new Dimension(70, 29));
myinfo.setMinimumSize(new Dimension(70, 29));
myinfo.setText("陌生人");
myinfo.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
myinfo_mouseClicked(e);
}
});
online.setFont(new java.awt.Font("Dialog", 0, 12));
online.setText("上线");
online.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
online_mouseClicked(e);
}
});
hello.getContentPane().setLayout(null);
jLabel1.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel1.setText("呢称");
jLabel1.setBounds(new Rectangle(48, 29, 41, 18));
helloname.setFont(new java.awt.Font("Dialog", 0, 12));
helloname.setBounds(new Rectangle(110, 28, 86, 22));
jLabel5.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel5.setText("JICQ");
jLabel5.setBounds(new Rectangle(235, 30, 41, 18));
hellojicq.setFont(new java.awt.Font("Dialog", 0, 12));
hellojicq.setBounds(new Rectangle(282, 28, 68, 22));
jLabel6.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel6.setText("电子邮箱");
jLabel6.setBounds(new Rectangle(44, 69, 60, 18));
helloemail.setFont(new java.awt.Font("Dialog", 0, 12));
helloemail.setBounds(new Rectangle(110, 67, 143, 22));
jLabel7.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel7.setText("个人资料");
jLabel7.setBounds(new Rectangle(44, 105, 75, 18));
helloinfo.setFont(new java.awt.Font("Dialog", 0, 12));
helloinfo.setBounds(new Rectangle(44, 136, 307, 101));
hellook.setText("确定");
hellook.setBounds(new Rectangle(149, 251, 79, 29));
hellook.setFont(new java.awt.Font("Dialog", 0, 12));
hellook.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
hellook_mouseClicked(e);
}
});
jLabel8.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel8.setText("发送消息");
jLabel8.setBounds(new Rectangle(178, 17, 95, 18));
jLabel9.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel9.setText("接收消息");
jLabel9.setBounds(new Rectangle(172, 14, 100, 18));
OneAddyou.getContentPane().setLayout(null);
jLabel10.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel10.setText("收到消息");
jLabel10.setBounds(new Rectangle(166, 70, 110, 30));
oneaddme.setBounds(new Rectangle(153, 67, 132, 18));
addit.setText("加为好友");
addit.setBounds(new Rectangle(77, 133, 89, 29));
addit.setFont(new java.awt.Font("Dialog", 0, 12));
addit.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
addit_mouseClicked(e);
}
});
iknow.setText("知道了");
iknow.setBounds(new Rectangle(219, 134, 87, 29));
iknow.setFont(new java.awt.Font("Dialog", 0, 12));
iknow.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
iknow_mouseClicked(e);
}
});
DirectAdd.getContentPane().setLayout(null);
jLabel11.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel11.setText("直接添加好友");
jLabel11.setBounds(new Rectangle(160, 66, 125, 18));
jLabel12.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel12.setText("好友号码");
jLabel12.setBounds(new Rectangle(123, 117, 66, 18));
friendid.setFont(new java.awt.Font("Dialog", 0, 12));
friendid.setBounds(new Rectangle(205, 116, 74, 22));
directaddok.setText("确定");
directaddok.setBounds(new Rectangle(163, 197, 79, 29));
directaddok.setFont(new java.awt.Font("Dialog", 0, 12));
directaddok.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
directaddok_mouseClicked(e);
}
});
DirectAdd.setResizable(false);
jPopupMenu1.setFont(new java.awt.Font("Dialog", 0, 12));
senddiapane.setFont(new java.awt.Font("Dialog", 0, 12));
dialogcon.add(info, null);
dialogcon.add(ok, null);
dialogcon.add(jLabel2, null);
about.setSize(100,100);
about.pack();
contentPane.add(jButton1, null);
contentPane.add(new JScrollPane(list));
contentPane.add(find, null);
contentPane.add(update, null);
contentPane.add(direct, null);
contentPane.add(myinfo, null);
contentPane.add(online, null);
jPopupMenu1.add(sendmessage);
jPopupMenu1.add(getmessage);
jPopupMenu1.add(lookinfo);
jPopupMenu1.add(delfriend);
senddiapane.add(sendtext, null);
senddiapane.add(send, null);
senddiapane.add(icq, null);
senddiapane.add(jLabel8, null);
senddiapane.add(name, null);
senddiapane.add(nametext, null);
senddiapane.add(cancel, null);
senddiapane.add(icqno, null);
getdata.getContentPane().add(getinfo, null);
getdata.getContentPane().add(getok, null);
getdata.getContentPane().add(getfromjicq, null);
getdata.getContentPane().add(jLabel4, null);
getdata.getContentPane().add(getfromname, null);
getdata.getContentPane().add(jLabel3, null);
getdata.getContentPane().add(jLabel9, null);
hello.getContentPane().add(helloinfo, null);
hello.getContentPane().add(hellojicq, null);
hello.getContentPane().add(helloemail, null);
hello.getContentPane().add(helloname, null);
hello.getContentPane().add(jLabel6, null);
hello.getContentPane().add(jLabel7, null);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -