JAVA基于PTP的局域网内的聊天共享文件的课程设计源代码.docx
- 文档编号:2370319
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:18
- 大小:18.99KB
JAVA基于PTP的局域网内的聊天共享文件的课程设计源代码.docx
《JAVA基于PTP的局域网内的聊天共享文件的课程设计源代码.docx》由会员分享,可在线阅读,更多相关《JAVA基于PTP的局域网内的聊天共享文件的课程设计源代码.docx(18页珍藏版)》请在冰豆网上搜索。
JAVA基于PTP的局域网内的聊天共享文件的课程设计源代码
.java文件以下是本文件的内容,总共有MyWindow.javaPPfriend.javaQQDialog.javareceiveSMG.javaRecevie.javaRecevieToOne.javaSendFile.javaSendToOne.java
MyWindow.java
packagehf;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
classAPanelextendsPanel{
TextAreachat_txt;
APanel2apanel2;
publicAPanel()
{
chat_txt=newTextArea(40,40);
chat_txt.setEditable(false);
apanel2=newAPanel2();
setLayout(newBorderLayout());
add("West",chat_txt);
add("East",apanel2);
}
}
classAPanel2extendsPanel
{
java.awt.Listlist;
APanel2(){
try{
list=newjava.awt.List(25,false);
}
catch(NullPointerExceptione){}
setLayout(newBorderLayout());
add("Center",list);
add("North",newLabel("当前聊天者列表:
"));
add("East",newLabel());
add("South",newLabel("双击一个人的昵称可以进行交谈"));
}
}
classBPanelextendsPanel
{
TextFieldmsg_txt;
Buttonbutton1,button2,button3,button4,button5;//button1button2用做
publicBPanel()
{
msg_txt=newTextField(30);
button1=newButton("发送");
button2=newButton("刷新谈话区");
button3=newButton("刷新在线用户");
setLayout(newFlowLayout(FlowLayout.LEFT));
add(newLabel("发送的话"));
add(msg_txt);
add(button1);
add(button2);
add(button3);
}
}
classMyWindowextendsFrame
{
Labelperson;
APanelpa;
BPanelpb;
publicMyWindow()
{
super("..");
person=newLabel("聊天记录:
");
pa=newAPanel();
pb=newBPanel();
setLayout(newBorderLayout());
setBackground(newColor(206,113,150));
setSize(550,450);
setLocation(450,100);
setResizable(false);
add("North",person);
add("Center",pa);
add("South",pb);
addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit
(1);
}
});
setVisible(true);
}
}
PPfriend.java
packagehf;
importjava.applet.Applet;
importjava.applet.AudioClip;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
import.*;
importjava.util.*;
importjavax.swing.*;
publicclassPPfriendextendsJFrameimplementsActionListener{
publicStringmyAddress;
publicStringmyIP;
Buttonbutton1,button2,button3;
Vectorclients=newVector();
publicMyWindowmyw;
QQDialogqq;
StringsendIp;
BroadcastThreadbroadcast;
receiveSMGrm;
Stringfilepath=null;
Stringsavepath=null;
RecevieToOnerecevietoone;
publicstaticvoidmain(String[]str){
newPPfriend();
}
publicPPfriend(){
try{
ppInit();
}catch(Exceptione){
e.printStackTrace();
}
serverListen();
}
voidppInit(){
myw=newMyWindow();
qq=newQQDialog("QQ");
qq.setVisible(false);
qq.refile.setEnabled(false);
recevietoone=newRecevieToOne(this);
recevietoone.start();
myw.pa.apanel2.list.addActionListener(this);
myw.pb.button1.addActionListener(this);
myw.pb.button2.addActionListener(this);
myw.pb.button3.addActionListener(this);
qq.fileBut.addActionListener(this);
qq.sendBut.addActionListener(this);
qq.refile.addActionListener(this);
rm=newreceiveSMG(this);
rm.start();
}
publicvoidserverListen(){
broadcast=newBroadcastThread();
broadcast.start();
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==myw.pb.button1){
myw.pa.chat_txt.append(myIP+":
"+myw.pb.msg_txt.getText()+"\n");
for(inti=0;i if(! clients.elementAt(i).toString().equals(myIP)) { try{ Stringmessage=myIP+": "+myw.pb.msg_txt.getText().toString(); InetAddressia=InetAddress.getByName(clients.elementAt(i).toString()); byte[]bs=message.getBytes(); DatagramPacketsendmessage=newDatagramPacket(bs,bs.length,ia,8005); DatagramSocketsocket=newDatagramSocket(); socket.send(sendmessage); socket.close(); qq.chat_txt.setText(null); qq.chat_txt.requestFocus(); }catch(Exceptionee){ ee.printStackTrace(); } } } myw.pb.msg_txt.setText(null); myw.pb.msg_txt.requestFocus(); } elseif(e.getSource()==myw.pb.button2){ myw.pa.chat_txt.setText(""); } elseif(e.getSource()==myw.pb.button3){ broadcast.yield(); broadcast=null; clients.clear(); myw.pa.apanel2.list.removeAll(); myw.pa.apanel2.list.repaint(); serverListen(); } elseif(e.getSource()==myw.pa.apanel2.list){ qq.setVisible(true); sendIp=myw.pa.apanel2.list.getSelectedItem().toString(); } elseif(e.getSource()==qq.fileBut){//发送文件 JFileChooserchooser=newJFileChooser(); intreturnVal=chooser.showDialog(null,"send"); if(returnVal==chooser.APPROVE_OPTION) { filepath=chooser.getSelectedFile().getAbsolutePath(); SendFilemysf=newSendFile(this,filepath); mysf.start(); } } elseif(e.getSource
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 基于 PTP 局域网 聊天 共享 文件 课程设计 源代码