?? mainwin.java
字號:
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();
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.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.setToolTipText("about");
direct.setPressedIcon(icon6);
ok.setText("OK");
ok.setBounds(new Rectangle(111, 89, 97, 29));
ok.addMouseListener(new MainWin_ok_mouseAdapter(this));
info.setMaximumSize(new Dimension(200, 100));
info.setMinimumSize(new Dimension(200, 100));
info.setText("你好,歡迎使用我的JAVA-icq,不過還有好多沒做出來:-)");
info.setBounds(new Rectangle(-31, 21, 353, 66));
sendmessage.setText("發送消息");
sendmessage.addMouseListener(new MainWin_sendmessage_mouseAdapter(this));
getmessage.setText("接收消息");
getmessage.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
getmessage_mousePressed(e);
}
});
lookinfo.setText("查看資料");
lookinfo.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
lookinfo_mousePressed(e);
}
});
chatrecord.setText("聊天記錄");
Container dialogcon=about.getContentPane();
about.setSize(200,200);
Container senddiapane=senddata.getContentPane();
dialogcon.setLayout(null);
dialogcon.setSize(100,100);
//senddiapane.setLayout(null);
name.setForeground(SystemColor.activeCaption);
name.setText("呢稱");
name.setBounds(new Rectangle(9, 44, 41, 18));
nametext.setBounds(new Rectangle(52, 38, 90, 22));
icq.setForeground(SystemColor.activeCaption);
icq.setText("JAVA_ICQ");
icq.setBounds(new Rectangle(163, 39, 64, 18));
icqno.setBounds(new Rectangle(257, 37, 96, 22));
send.setIcon(icon1);
send.setText("發送");
send.setBounds(new Rectangle(39, 219, 136, 29));
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(220, 216, 110, 29));
cancel.addMouseListener(new MainWin_cancel_mouseAdapter(this));
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.setMaximumSize(new Dimension(20, 10));
sendtext.setBounds(new Rectangle(7, 71, 384, 141));
jLabel2.setText("This is HG");
jLabel2.setBounds(new Rectangle(20, 82, 89, 18));
//senddiapane.setBackground(new Color(58, 112, 165));
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.setText("昵稱");
jLabel3.setBounds(new Rectangle(14, 37, 41, 18));
getfromname.setBounds(new Rectangle(56, 37, 90, 22));
jLabel4.setText("JiCQ");
jLabel4.setBounds(new Rectangle(164, 39, 41, 18));
getfromjicq.setBounds(new Rectangle(224, 37, 104, 22));
getinfo.setBounds(new Rectangle(18, 68, 325, 153));
getok.setText("ok");
getok.setBounds(new Rectangle(136, 240, 79, 29));
getok.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
getok_mouseClicked(e);
}
});
update.setText("更新");
update.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
update_mouseClicked(e);
}
});
delfriend.setText("刪除好友");
delfriend.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
delfriend_mousePressed(e);
}
});
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.setText("上線");
online.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
online_mouseClicked(e);
}
});
hello.getContentPane().setLayout(null);
jLabel1.setText("呢稱");
jLabel1.setBounds(new Rectangle(11, 29, 41, 18));
helloname.setBounds(new Rectangle(52, 27, 78, 22));
jLabel5.setText("Jicq#");
jLabel5.setBounds(new Rectangle(148, 30, 41, 18));
hellojicq.setBounds(new Rectangle(198, 28, 106, 22));
jLabel6.setText("電子郵件");
jLabel6.setBounds(new Rectangle(11, 71, 66, 18));
helloemail.setBounds(new Rectangle(64, 69, 138, 22));
jLabel7.setText("個人資料");
jLabel7.setBounds(new Rectangle(14, 106, 75, 18));
helloinfo.setBounds(new Rectangle(13, 136, 301, 101));
jButton3.setBounds(new Rectangle(218, 65, 79, 29));
hellook.setText("ok");
hellook.setBounds(new Rectangle(124, 245, 79, 29));
hellook.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
hellook_mouseClicked(e);
}
});
jLabel8.setText("發送消息");
jLabel8.setBounds(new Rectangle(14, 19, 196, 18));
jLabel9.setText("接收消息");
jLabel9.setBounds(new Rectangle(12, 13, 186, 18));
OneAddyou.getContentPane().setLayout(null);
jLabel10.setText("收到消息");
jLabel10.setBounds(new Rectangle(7, 13, 143, 18));
oneaddme.setBounds(new Rectangle(7, 57, 247, 18));
addit.setText("加為好友");
addit.setBounds(new Rectangle(19, 124, 93, 29));
addit.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
addit_mouseClicked(e);
}
});
iknow.setText("知道了");
iknow.setBounds(new Rectangle(164, 124, 79, 29));
iknow.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
iknow_mouseClicked(e);
}
});
DirectAdd.getContentPane().setLayout(null);
jLabel11.setText("直接添加好友");
jLabel11.setBounds(new Rectangle(7, 19, 220, 18));
jLabel12.setText("好友號碼");
jLabel12.setBounds(new Rectangle(11, 58, 72, 18));
friendid.setBounds(new Rectangle(83, 53, 118, 22));
directaddok.setText("確定");
directaddok.setBounds(new Rectangle(89, 109, 79, 29));
directaddok.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
directaddok_mouseClicked(e);
}
});
DirectAdd.setResizable(false);
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(chatrecord);
jPopupMenu1.add(delfriend);
senddiapane.add(send, null);
senddiapane.add(cancel, null);
senddiapane.add(sendtext, null);
senddiapane.add(name, null);
senddiapane.add(nametext, null);
senddiapane.add(icq, null);
senddiapane.add(icqno, null);
senddiapane.add(jLabel8, null);
getdata.getContentPane().add(getinfo, null);
getdata.getContentPane().add(getok, null);
getdata.getContentPane().add(jLabel3, null);
getdata.getContentPane().add(getfromname, null);
getdata.getContentPane().add(jLabel4, null);
getdata.getContentPane().add(getfromjicq, null);
getdata.getContentPane().add(jLabel9, null);
hello.getContentPane().add(jLabel1, null);
hello.getContentPane().add(helloname, null);
hello.getContentPane().add(jLabel5, null);
hello.getContentPane().add(hellojicq, null);
hello.getContentPane().add(jLabel6, null);
hello.getContentPane().add(helloemail, null);
hello.getContentPane().add(jLabel7, null);
hello.getContentPane().add(helloinfo, null);
hello.getContentPane().add(jButton3, null);
hello.getContentPane().add(hellook, null);
OneAddyou.getContentPane().add(jLabel10, null);
OneAddyou.getContentPane().add(oneaddme, null);
OneAddyou.getContentPane().add(addit, null);
OneAddyou.getContentPane().add(iknow, null);
DirectAdd.getContentPane().add(jLabel11, null);
DirectAdd.getContentPane().add(jLabel12, null);
DirectAdd.getContentPane().add(friendid, null);
DirectAdd.getContentPane().add(directaddok, null);
senddata.pack();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -