用java语言编一个聊天小程序

  • 格式:doc
  • 大小:144.00 KB
  • 文档页数:9

下载文档原格式

  / 23
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用java语言编一个聊天小程序

要求:

使用图形用户界面。

能实现一个聊天室中多人聊天。

可以两人私聊。

提示:使用socket通信

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import .*;

import java.io.*;

public class test

{

public static void main(String[] args)

{

EventQueue.invokeLater(new Runnable()

{

public void run()

{

DrawFrame frame = new DrawFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

});

}

}

class DrawFrame extends JFrame

{

public DrawFrame()

{

setLocation(100,100);

setTitle("我的QQ");

setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

//添加菜单项……

JMenuBar menuBar = new JMenuBar();

setJMenuBar(menuBar);

JMenu edit = new JMenu("菜单");

menuBar.add(edit);

JMenuItem sset = new JMenuItem("设置");

JMenuItem eexit = new JMenuItem("退出");

edit.add(sset);

edit.addSeparator();

edit.add(eexit);

final DrawPanel pan = new DrawPanel();

//添加设置对话框

sset.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent event) {

final JFrame jf = new JFrame("设置");

jf.setSize(300,150);

jf.setLocation(200,200);

jf.setResizable(false);

jf.setVisible(true);

JPanel jp = new JPanel();

final JTextField jt1 = new JTextField(20);

final JTextField jt2 = new JTextField(20);

final JTextField jt3 = new JTextField(20);

jp.add(new JLabel("聊天端口:"));

jf.add(jp);

jp.add(jt1);

jp.add(new JLabel("目标地址:"));

jp.add(jt2);

jp.add(new JLabel("文件端口:"));

jp.add(jt3);

JButton jb1 = new JButton("确定");

JButton jb2 = new JButton("取消");

jp.add(jb1);

jp.add(jb2);

//设置“设置”按钮

jb1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event){ try{

int cat1 = Integer.parseInt(jt1.getText());

pan.setCat1(cat1);//设置对话端口号

int cat2 = Integer.parseInt(jt3.getText());

pan.setCat2(cat2);//设置文件传输端口号

String s = jt2.getText();

pan.setIP(s);//设置IP地址

pan.ls();

}

catch(Exception e)

{

e.printStackTrace();

}

jf.dispose();//关闭对话框

}

});

jb2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event){

jf.dispose();

}

});

}

});

eexit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent event){

System.exit(0);

}

});

add(pan);

pack();

}

public static final int DEFAULT_WIDTH = 400; public static final int DEFAULT_HEIGHT = 400;

}

class DrawPanel extends JPanel

{

DatagramSocket ds;

DatagramPacket dp;

DatagramSocket ds1;

DatagramPacket dp1;

Thread thread;

Thread thread1;

TextArea textArea1 = new TextArea(10,50); TextArea textArea2 = new TextArea(10,50); JTextField textField = new JTextField(50);

static int cat1,cat2;

static String IP;

public void setCat1(int cat)

{

cat1 = cat;

}