速求用JAVA语言写聊天室的源代码。 提示:使用Swing图形用户界面、多线程、网络编程等技术。 20

要求一个登录界面与一个聊天室,鼠标点击登录之后进入聊天室,只需要能够简单的实现群聊、私聊就行。要源代码,谢谢。... 要求一个登录界面与一个聊天室,鼠标点击登录之后进入聊天室,只需要能够简单的实现群聊、私聊就行。要源代码,谢谢。 展开
 我来答
李修明5644
2013-04-22 · TA获得超过1352个赞
知道答主
回答量:295
采纳率:0%
帮助的人:78.6万
展开全部
还不是很完善的
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.net.InetAddress;
import java.net.DatagramSocket;
import java.net.DatagramPacket;

public class ChatRoom{
public static void main(String []args){
JFrame f=new JFrame();
f.setSize(700,600);
f.setTitle("聊天室");
f.setLayout(null);

//创建文本域:
final JTextArea textshow=new JTextArea();
textshow.setBounds(0,0,700,300);
textshow.setEditable(false);//不可编辑
f.add(textshow);

//创建标签1;
JLabel lab1=new JLabel();
lab1.setBounds(100,320,80,20);
lab1.setText("IP地址:");
f.add(lab1);

//ip地址文本框:
final JTextField text=new JTextField();
text.setBounds(190,320,100,20);
text.setText("127.0.0.1");
f.add(text);

//标签2:
JLabel lab2=new JLabel();
lab2.setBounds(310,320,80,20);
lab2.setText("端口号:");
f.add(lab2);

//端口 文本框
final JTextField textport=new JTextField();
textport.setBounds(400,320,100,20);
textport.setText("8888");
textport.setEditable(false);
f.add(textport);

//输入文本域:
final JTextArea textsend=new JTextArea();
textsend.setBounds(0,360,700,160);
f.add(textsend);

//发送按钮:
JButton btn1=new JButton();
btn1.setText("发送信息");
btn1.setBounds(590,530,100,30);
f.add(btn1);
btn1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){
String userIp=text.getText();
String userPort=textport.getText();
String usertext=textsend.getText();

try
{
InetAddress add=InetAddress.getByName(userIp);
int port=new Integer(userPort);
byte []bs=usertext.getBytes();

DatagramPacket dp=new DatagramPacket(bs,bs.length,add,port);
DatagramSocket ds=new DatagramSocket();
ds.send(dp);
textsend.setText("");
textsend.requestFocus();
}
catch (Exception ex)
{
}

}
});

new Thread(){
public void run(){
try
{
DatagramSocket ds=new DatagramSocket(8888);
while (true)
{

byte []bs=new byte[1024];
DatagramPacket dp=new DatagramPacket(bs,1024);
ds.receive(dp);
String str=new String(bs);
str=str.trim();
if (textshow.getText().equals(""))
{
textshow.setText(str);
continue;
}
textshow.setText(textshow.getText()+"\r\n"+str);
}

}
catch (Exception ex)
{
}
}

}.start();

f.setLocationRelativeTo(null);
f.setVisible(true);

}
}
6_豆腐_6
2012-04-17
知道答主
回答量:14
采纳率:0%
帮助的人:8.8万
展开全部
给你个网址 你自己去学下吧 http://blog.csdn.net/qqiabc521/article/details/6393693 要源码的话 还是没办法的 因为那个聊天室的源码大概要几百块。 你要20分拿到是不太现实的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kuailewangzi_o
2011-07-25 · TA获得超过245个赞
知道答主
回答量:324
采纳率:33%
帮助的人:279万
展开全部
20分。。你以为编个软件那么容易?就你说的这个,没一周时间做的出来?谁抽风了。。
追问
我学的就是Java!最基本的还是懂得!请不要为你自己没能力找借口,那样只会使你看起来更加没能力!既然不会做,你跟什么帖子!
追答
。。。好吧,就你学的JAVA。。那你继续。我看着有人给你做个源代码出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式