import java.awt.BorderLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import java.io.IOException;
import java.net.*;
/*
* 创建日期 2005-8-17
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*//**
* @author 董伟
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class Chat extends JFrame { /**
*
*/
List jls=new List();
JTextField tfIP=new JTextField(10);
JTextField tfData=new JTextField(15);
JPanel jp=new JPanel();
DatagramSocket ds;
//jp.setLayout(new BorderLayout());
public Chat()
{
//TODO 自动生成构造函数存根
new Thread(new Runnable()
{ public void run()
{
// TODO 自动生成方法存根
byte [] buf = new byte[1024];
DatagramPacket dp=new
DatagramPacket(buf,buf.length);
while(true)
{
try
{
ds.receive(dp);
jls.add(new String(dp.getData(),0,dp.getLength()) + " from"
+ dp.getAddress().getHostAddress()+ " : " + dp.getPort() ,0);
;
} catch (IOException e)
{
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}).start();
try
{
ds=new DatagramSocket(3000);
}
catch(Exception e)
{
e.printStackTrace();
}
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
this.getContentPane().add(jls,"Center");
this.getContentPane().add(jp,"South");
jp.setLayout(new BorderLayout());
jp.add(tfIP,"West");
jp.add(tfData,"East");
tfData.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent arg0)
{
// TODO 自动生成方法存根
try
{
byte [] buf;
buf=tfData.getText().getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
ds.send(dp);
}
catch(Exception ex)
{
ex.printStackTrace();
}
tfData.setText("");
}
});
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
ds.close();
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
System.out.println("程序开始运行了啊");
Chat c=new Chat();
c.setSize(300,400);
c.setTitle("我的聊天室");
c.setVisible(true);
c.setResizable(false);
}
}
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import java.io.IOException;
import java.net.*;
/*
* 创建日期 2005-8-17
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*//**
* @author 董伟
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class Chat extends JFrame { /**
*
*/
List jls=new List();
JTextField tfIP=new JTextField(10);
JTextField tfData=new JTextField(15);
JPanel jp=new JPanel();
DatagramSocket ds;
//jp.setLayout(new BorderLayout());
public Chat()
{
//TODO 自动生成构造函数存根
new Thread(new Runnable()
{ public void run()
{
// TODO 自动生成方法存根
byte [] buf = new byte[1024];
DatagramPacket dp=new
DatagramPacket(buf,buf.length);
while(true)
{
try
{
ds.receive(dp);
jls.add(new String(dp.getData(),0,dp.getLength()) + " from"
+ dp.getAddress().getHostAddress()+ " : " + dp.getPort() ,0);
;
} catch (IOException e)
{
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}
}).start();
try
{
ds=new DatagramSocket(3000);
}
catch(Exception e)
{
e.printStackTrace();
}
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
this.getContentPane().add(jls,"Center");
this.getContentPane().add(jp,"South");
jp.setLayout(new BorderLayout());
jp.add(tfIP,"West");
jp.add(tfData,"East");
tfData.addActionListener(new ActionListener()
{ public void actionPerformed(ActionEvent arg0)
{
// TODO 自动生成方法存根
try
{
byte [] buf;
buf=tfData.getText().getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
ds.send(dp);
}
catch(Exception ex)
{
ex.printStackTrace();
}
tfData.setText("");
}
});
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
ds.close();
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
System.out.println("程序开始运行了啊");
Chat c=new Chat();
c.setSize(300,400);
c.setTitle("我的聊天室");
c.setVisible(true);
c.setResizable(false);
}
}
解决方案 »
- 关于怎么样从c的思维转到java面向对象的思维上,高手有什么可以给些建议吗?
- Eclipse RCP深入浅出电子书
- 小弟初学者,目前正在自学,有个问题求指教
- 如何限制其它用户不能安装与卸载软件
- 我想锻炼一下编程的实际能力,请问哪里有比较好的练习题啊?
- 一个Dialog问题
- java消费者生产者问题,奇怪的问题,请大家看看原因是什么,分少请谅解!
- 我是Java菜鸟,刚开始学,Java是怎么编辑的里面的程序都看不懂,哪位大神能教教我啊!
- awt中有树形组件吗?像swing中的JTree.
- jdbc 链接数据库(链接以后再指定数据库名)
- 一个座位的分配
- 一个ArrayList里的元素全部是Byte对象.怎么才能把这个ArrayList转换成一个byte[](不是Byte[])
import java.awt.BorderLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import java.io.IOException;
import java.net.*;
/*
* 创建日期 2005-8-17
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*//**
* @author 董伟
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class Chat extends JFrame { /**
*
*/
List jls=new List();
JTextField tfIP=new JTextField(10);
JTextField tfData=new JTextField(15);
JPanel jp=new JPanel();
DatagramSocket ds;
//jp.setLayout(new BorderLayout());
public Chat()
{
// TODO 自动生成构造函数存根
new Thread(new Runnable()
{ public void run()
{
// TODO 自动生成方法存根
byte [] buf = new byte[1024];
DatagramPacket dp=new DatagramPacket(buf,buf.length);
while(true)
{
try
{
ds.receive(dp);
jls.add(new String(dp.getData(),0,dp.getLength()) + " from"
+ dp.getAddress().getHostAddress()+ " : " + dp.getPort() ,0);
;
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}).start();
try
{
ds=new DatagramSocket(3000);
}
catch(Exception e)
{
e.printStackTrace();
}
this.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
this.getContentPane().add(jls,"Center");
this.getContentPane().add(jp,"South");
jp.setLayout(new BorderLayout());
jp.add(tfIP,"West");
jp.add(tfData,"East");
tfData.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
// TODO 自动生成方法存根
try
{
byte [] buf;
buf=tfData.getText().getBytes();
DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName(tfIP.getText()),3000);
ds.send(dp);
}
catch(Exception ex)
{
ex.printStackTrace();
}
tfData.setText("");
}
});
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
ds.close();
dispose();
System.exit(0);
}
});
}
public static void main(String[] args) {
System.out.println("程序开始运行了啊");
Chat c=new Chat();
c.setSize(300,400);
c.setTitle("我的聊天室");
c.setVisible(true);
c.setResizable(false);
}
}