📄 mainwin.java~76~
字号:
package cilent;
/**
* <p>Title: MyQQ</p>
* <p>Description: MyQQ</p>
* <p>Copyright: Copyright (c) 2007</p>
* <p>Company: 南昌大学软件学院 04级网通1班</p>
* @author 张利彬
* @version 1.0
*/
import wodqq.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Vector;
import java.net.*;
import java.io.*;
import java.awt.Image;
import java.util.Date;
//import java.sql.Date;
public class MainWin
extends JFrame
implements Runnable {
JPanel contentPane;
///////////////////////////friendinfo
//以下是好友基本信息变量,比如呢称,ip地址等
Vector friendnames = new Vector();
int friendnum; //friend number
private String[] picsonline = new String[] {
"1.jpg","2.jpg", "3.jpg","4.jpg", "5.jpg","6.jpg", "8.jpg","7.jpg"};
private String[] picsoffline = new String[] {
"o1.jpg", "o2.jpg","o3.jpg", "o4.jpg","o5.jpg", "o6.jpg","o7.jpg", "o8.jpg"};
Vector friendjicq = new Vector();
Vector udpport = new Vector();
Vector friendips = new Vector();
Vector friendemail = new Vector();
Vector friendinfo = new Vector();
Vector picno = new Vector();
Vector status = new Vector();
Vector pic=new Vector();
//以下是临时变量保存临时的好友
Vector tempname = new Vector();
Vector tempjicq = new Vector();
Vector tempip = new Vector();
Vector temppic = new Vector();
Vector tempstatus = new Vector();
Vector whoaddmesip = new Vector(); //get whoaddme as friend
Vector tempemail = new Vector();
Vector tempinfo = new Vector();
int index; //get list index
int index3; //get firiend onlineinfo
int index4; //get message from info
boolean fromunknow = false;
//以下建立窗口类
FindFriend2 findf;
JDialog hello = new JDialog();
JDialog OneAddyou = new JDialog();
JDialog DirectAdd = new JDialog();
int tempgetjicq; //get the tempgetjicq
/////////////////////////////friend info
//以下是程序界面的变量
ImageIcon icon1 = new ImageIcon("cab_small.gif");
ImageIcon icon6 = new ImageIcon("sun_small.gif");
JButton jButton1 = new JButton();
JButton direct = new JButton();
JLabel info = new JLabel();
JDialog about = new JDialog();
JDialog senddata = new JDialog();
JDialog getdata = new JDialog();
JButton ok = new JButton();
JPopupMenu jPopupMenu1 = new JPopupMenu();
JMenuItem sendmessage = new JMenuItem();
JMenuItem getmessage = new JMenuItem();
JMenuItem lookinfo = new JMenuItem();
JMenuItem chatrecord = new JMenuItem();
JLabel name = new JLabel();
JTextField nametext = new JTextField();
JLabel icq = new JLabel();
JTextField icqno = new JTextField();
JButton send = new JButton();
JButton cancel = new JButton();
JTextArea sendtext = new JTextArea();
JList list;
JLabel jLabel2 = new JLabel();
JButton find = new JButton();
//*************net
//以下是网络相关变量
String user;
Socket socket;
BufferedReader in;
PrintWriter out;
DatagramPacket sendPacket, receivePacket;
DatagramSocket sendSocket, receiveSocket;
int udpPORT = 5005; //
int sendPort = 5000;
String server;
int serverport;
byte array[] = new byte[512];
Thread thread;
int myjicq;
String received;
JTextArea textArea;
long clickTime=0;
////以下是程序界面的变量
JLabel jLabel3 = new JLabel();
JTextField getfromname = new JTextField();
JLabel jLabel4 = new JLabel();
JTextField getfromjicq = new JTextField();
JTextArea getinfo = new JTextArea();
JButton getok = new JButton();
String theip;
JButton update = new JButton();
JMenuItem delfriend = new JMenuItem();
JButton myinfo = new JButton();
JButton online = new JButton();
JLabel jLabel1 = new JLabel();
JTextField helloname = new JTextField();
JLabel jLabel5 = new JLabel();
JTextField hellojicq = new JTextField();
JLabel jLabel6 = new JLabel();
JTextField helloemail = new JTextField();
JLabel jLabel7 = new JLabel();
JTextArea helloinfo = new JTextArea();
JButton jButton3 = new JButton();
JButton hellook = new JButton();
JLabel jLabel8 = new JLabel();
JLabel jLabel9 = new JLabel();
JLabel jLabel10 = new JLabel();
JLabel oneaddme = new JLabel();
ImageIcon img1 = new ImageIcon("src/img/add.png");
BackGroundButton addit = new BackGroundButton(img1);
ImageIcon img2 = new ImageIcon("src/img/qd.png");
BackGroundButton iknow = new BackGroundButton(img2);
JLabel jLabel11 = new JLabel();
JLabel jLabel12 = new JLabel();
JTextField friendid = new JTextField();
JButton directaddok = new JButton();
Border border1;
//***************net
/*以下该函数连接服务器*/
public void ConnectServer(int myid) {
try {
socket = new Socket(InetAddress.getByName(server), serverport);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
//this is call my friend info
//以下读取好友信息
out.println("friend");
out.println(myid);
friendnum = Integer.parseInt(in.readLine());
String friendname = " ";
String friendjicqno, friendip, friendstatus, picinfo, email, infos;
do {
friendname = in.readLine();
if (friendname.equals("over"))
break;
friendnames.add(friendname);
friendjicqno = in.readLine();
friendjicq.add(new Integer(friendjicqno));
friendip = in.readLine();
friendips.add(friendip);
friendstatus = in.readLine();
status.add(friendstatus);
picinfo = in.readLine();
picno.add(new Integer(picinfo));
email = in.readLine();
friendemail.add(email);
infos = in.readLine();
friendinfo.add(infos);
}
while (!friendname.equals("over"));
}
catch (IOException e1) {
System.out.println("false");
}
//以下在列表中显示好友
DefaultListModel mm = (DefaultListModel) list.getModel();
int picid;
for (int p = 0; p < friendnames.size(); p++) {
picid = Integer.parseInt(picno.get(p).toString());
if (status.get(p).equals("1")) {
mm.addElement(new Object[] {friendnames.get(p),
new ImageIcon(picsonline[picid])});
}
else {
mm.addElement(new Object[] {friendnames.get(p),
new ImageIcon(picsoffline[picid])});
}
} //for
} //connectto server
//*****************************
//以下函数无限监听好友的消息
public void run() {
while (true) {
try {
for (int x = 0; x < 512; x++)
array[x] = ' ';
//创建数据报
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(sendPort);
System.out.println("zlb--" + sendSocket);
receiveSocket = new DatagramSocket(udpPORT);
System.out.println("zlb--" + receiveSocket);
/****************************************/
System.out.println("udp "+udpPORT+" 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -