JAVA代码编写一简单网络聊天程序

合集下载

SimpleChat程序(一对多聊天源代码 java)

SimpleChat程序(一对多聊天源代码 java)

package com.wyh.chatRoom;import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import .InetAddress;import .ServerSocket;import .Socket;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTabbedPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.JToolBar;public class wyhChatRoom extends JFrame implements ActionListener{ private String name; //服务器聊天室的图形用户界面private JComboBox combox; //网名private JTextField text; //输入IP地址或域名的组合框private JTabbedPane tab; //选项卡窗格,每页与一个Socket通信public wyhChatRoom(int port ,String name) throws IOException{super("聊天室"+name+" "+InetAddress.getLocalHost()+"端口:"+port);this.setBounds(320, 240, 440, 240);this.setDefaultCloseOperation(EXIT_ON_CLOSE);JToolBar toolbar=new JToolBar(); //工具栏this.getContentPane().add(toolbar,"North");toolbar.add(new JLabel("主机"));combox=new JComboBox();combox.addItem("127.0.0.1");toolbar.add(combox);combox.setEditable(true);toolbar.add(new JLabel("端口"));text=new JTextField("1251");toolbar.add(text);JButton button_connect=new JButton("连接");button_connect.addActionListener(this);toolbar.add(button_connect);tab=new JTabbedPane(); //选项卡窗口this.setBackground(Color.blue);this.getContentPane().add(tab);this.setVisible(true);=name;while(true){Socket client=new ServerSocket(port).accept();//等待接受客户端的连接申请tab.addTab(name, new TabPageJPanel(client));//tab添加页,页中添加内部类面板tab.setSelectedIndex(tab.getTabCount()-1);//tab指定新页为选择状态port++;}}public void actionPerformed(ActionEvent e){if(e.getActionCommand()=="连接"){String host=(String)combox.getSelectedItem();int port=Integer.parseInt(text.getText());try{tab.addTab(name, new TabPageJPanel(new Socket(host,port)));//连接成功tab添加页tab.setSelectedIndex(tab.getTabCount()-1);//tab指定新页为选中状态}catch(IOException e1){e1.printStackTrace();}}}//面板内部类,每个对象表示选项卡窗格的一页,包含一个Socket和一个线程private class TabPageJPanel extends JPanel implements Runnable,ActionListener{Socket socket;Thread thread;JTextArea text_receiver;//显示对话内容的文本区JTextField text_sender; //输入发送内容的文本行JButton buttons[]; //发送‘离线’删除页按钮PrintWriter cout; //字符输出流对象int index;TabPageJPanel(Socket socket) {super(new BorderLayout());this.text_receiver=new JTextArea();this.text_receiver.setEditable(false);this.add(new JScrollPane(this.text_receiver));JPanel panel=new JPanel();this.add(panel,"South");this.text_sender=new JTextField(16);panel.add(this.text_sender);this.text_sender.addActionListener(this);String strs[]={"发送","离线","删除页"};buttons =new JButton[strs.length];for (int i = 0; i < buttons.length; i++) {buttons[i]=new JButton(strs[i]);panel.add(buttons[i]);buttons[i].addActionListener(this);}buttons[2].setEnabled(false);this.socket=socket;this.thread=new Thread(this);this.thread.start();}@Overridepublic void run() {try {this.cout =new PrintWriter(socket.getOutputStream(),true);this.cout.println(name);//发送自己网名给对方BufferedReader cin=new BufferedReader(new InputStreamReader(socket.getInputStream()));String name=cin.readLine(); //接收对方网名index=tab.getSelectedIndex();tab.setTitleAt(index, name);String aline=cin.readLine();while(aline!=null && !aline.equals("bye")){tab.setSelectedIndex(index);text_receiver.append(aline+"\r\n");Thread.sleep(1000);aline=cin.readLine();}cin.close();cout.close();socket.close();buttons[0].setEnabled(false);//接收方的发送按钮无效buttons[1].setEnabled(false);//接收方的离线按钮无效buttons[2].setEnabled(false);//接收方的删除按钮无效} catch (Exception e) {e.printStackTrace();}}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getActionCommand()=="发送"){this.cout.println(name+"说:"+text_sender.getText());text_receiver.append("我说:"+text_sender.getText()+"\n");text_sender.setText("");}if(e.getActionCommand()=="离线"){text_receiver.append("我离线\n");this.cout.println(name+"离线\n"+"bye");buttons[0].setEnabled(false);buttons[1].setEnabled(false);buttons[2].setEnabled(false);}}}public static void main(String[] args) throws IOException {new wyhChatRoom(2001, "航哥哥");//启动服务端,约定端口,指定网名}}。

网络聊天程序代码

网络聊天程序代码

客户端代码:package chat1;import java.awt.*;import java.awt.event.*;import java.awt.image.BufferedImage;import javax.swing.*;import java.io.*;import .*;public class Chat_client extends JFrame implements ActionListener {private static final long serialVersionUID = 1L;private ObjectInputStream in;private ObjectOutputStream out;private String message = "";// private String Localhost;private Socket toclient;//private String ss[]={"宋体","楷体","华文行楷","新宋体"};JMenuBar jmb1;JToolBar jtb1;JToolBar jtb2;JButton jm1;JButton jm2;JButton jm3;JButton jm4;JButton connect;JButton selfout;JButton selcolor;JButton back1;JButton back2;JButton selface;JButton selbg;JButton selsound;JPanel jp1;JPanel jp2;JList jl;JTextArea jta1;JTextField jtf;Container con;JLabel label;JSeparator js1;JSeparator js2;Color color;BufferedImage bufimage;Icon bg1;Icon bg2;Icon bg3;Icon bg4;Dimension size;Font font;// JComboBox jcb;public Chat_client(){con = this.getContentPane();jp1 = new JPanel();jp2 = new JPanel();jp1.setLayout(new BorderLayout());jp2.setLayout(new BorderLayout());jta1=new JTextArea("");jtf = new JTextField("Please input:");jta1.setBackground(Color.LIGHT_GRAY);jtf.setBackground(Color.LIGHT_GRAY);jta1.setEditable(false);jta1.setEnabled(true);jtf.setEditable(true);jtf.addActionListener(this);jmb1 = new JMenuBar();jmb1.setBackground(Color.pink);jtb1 = new JToolBar();jtb1.setBackground(Color.pink);js1 = new JSeparator();js2 = new JSeparator();jl = new JList();label = new JLabel("制作人:Jimmy"); label.setForeground(Color.BLUE);jtb2 = new JToolBar();jtb2.setBackground(Color.pink);jtb2.add(label);jp2.add( new JScrollPane(jtf));jp2.add(jtb1,"North");jp2.add(jtb2,"South");jm1 = new JButton("在线");jm1.setBackground(Color.orange); jmb1.add(jm1);jm2 = new JButton("离线");jm2.setBackground(Color.orange); jmb1.add(jm2);jm3 = new JButton("隐身");jm3.setBackground(Color.orange); jmb1.add(jm3);jm4 = new JButton("帮助");jm4.setBackground(Color.orange);jm4.addActionListener(this);jmb1.add(jm4);// jcb = new JComboBox(ss);connect = new JButton("连接服务器"); connect.setBackground(Color.yellow); connect.addActionListener(this); selface = new JButton("表情选择"); selface.setBackground(Color.orange); selface.addActionListener(this);selbg = new JButton("情景选择"); selbg.setBackground(Color.orange); selbg.addActionListener(this);selfout = new JButton("字体选择");selfout.addActionListener(this);selcolor = new JButton("字体颜色");selcolor.setBackground(Color.orange); selcolor.addActionListener(this);selsound = new JButton("选择音乐"); selsound.addActionListener(this);selsound.setBackground(Color.orange);jtb1.add(selcolor);jtb1.add(jl);jtb1.add(selfout);// jtb1.add(jcb);jtb1.add(selface);jtb1.add(selbg);jtb1.add(selsound);jtb1.add(connect,"East");bg1 = new ImageIcon("micky.jpg");bg2 = new ImageIcon("23.jpg");back1 = new JButton();back2 = new JButton();back1.setIcon(bg1);back2.setIcon(bg2);back1.setBackground(Color.pink);back2.setBackground(Color.pink);jp1.add(back1,"North");jp1.add(js2);jp1.add(back2,"South");con.setLayout(new BorderLayout());con.add(jmb1,"North");//con.add(jta1);con.add(jp2,"South");con.add(jp1,"East");con.add(new JScrollPane(jta1));size = this.getToolkit().getScreenSize();this.setJMenuBar(jmb1);this.setIconImage(getToolkit().getImage("qq.jpg"));this.setSize(size.width - 300, size.height /2 +27);this.setResizable(false);this.setLocation(100,220);this.setTitle("Welcome to the chat room !");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void actionPerformed(ActionEvent evt){if(evt.getActionCommand().equals("字体颜色") ){color = JColorChooser.showDialog(null, "请选择颜色", null);}if(evt.getActionCommand().equals("字体选择")){JOptionPane.showMessageDialog(null,"Sorry, you can't set the font that time!");}if(evt.getActionCommand().equals("情景选择")){JOptionPane.showMessageDialog(null, "Sorry,you should use the tolerant background !");}if(evt.getActionCommand().equals("选择音乐")){JOptionPane.showMessageDialog(null, "Sorry,the function is down");}if(evt.getActionCommand().equals("表情选择")){JOptionPane.showMessageDialog(null, "Sorry ");}if(evt.getSource()==jm4){JOptionPane.showMessageDialog(null, "这是一个基于局域网的聊天软件," +"\n"+"所以请在同一局域网中运行。

JAVA的即时通讯源代码

JAVA的即时通讯源代码

JAVA实现即使通讯的代码图形界面////////////////////////////////////////////////////////////用Java 编写的聊天器,可以当服务器或者是客户端,一对一,自定义对方IP 及端口。

//虽然名为LANChat ,但不限于局域网。

对象甚至可以是某种“服务器”。

///////////////////////////////////////////////////////////import java.io.*;import .*;import java.awt.*;import javax.swing.*;import java.awt.event.*;//////////////////////////////////////////////////////////public class LANChatV12{public static void m ain(String args[]){LoginFrame lf =new LoginFrame("输入目标");lf.show();}}/////////////////////////////////////////////////////////class LoginFrame extends JFrame{JButton BOK;JLabel LdesAddr, Lport;JTextField TFdesAddr, TFport;String desAddr, port;LoginFrame(){}LoginFrame(String title){super(title);Fram e t =this;BOK =new JButton("确定");LdesAddr =new JLabel("目标IP");Lport =new JLabel("端口");TFdesAddr =new JTextField(desAddr,12);TFport =new JTextField(port,12);//TFpassword.setEchoChar('*');BOK.addActionListener(new BOKListener(t)); setBackground(Color.blue);setBounds(350,250,200,128);setLayout(new FlowLayout(FlowLayout.CENTER,5,7)); add(LdesAddr);add(TFdesAddr);add(Lport);add(TFport);add(BOK);setResizable(false);//setVisible(true);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){ System.exit(0);}});}class BOKListener implements ActionListener{Fram e t;BOKListener(){}BOKListener(Frame t){this.t =t;}public void actionPerformed(ActionEvent e){ desAddr =TFdesAddr.getText();port =TFport.getText();t.setVisible(false);Messenger m =new Messenger(desAddr, port); m.start();}}}/////////////////////////////////////////////////////class Messenger extends Thread{String desAddr;String port;int iport;TextArea content, send;JButton Bsend;ChatFram e cf;String title;Socket client;ServerSocket ss;OutputStream Writer osw =null; InputStreamReader isr =null; BufferedReader br;String line;boolean flag;//端口号是否正确boolean cbc; //can be client ?int tryTurns =3; //客户方式尝试的次数Messenger(){}Messenger(String desAddr, String port){super("LANChatMessenger");content =new TextArea("",0,0,TextArea.SCROLLBARS_VERTICAL_ONLY); send =new TextArea("",0,0,TextArea.SCROLLBARS_VERT ICAL_ONLY); Bsend =new JButton("发送");Bsend.setEnabled(false);title ="与" + desAddr +" 聊天";flag =true;cbc =true;cf =new ChatFram e(title, content, send, Bsend);cf.show();this.desAddr =desAddr;this.port =port;try{iport =Integer.parseInt(port);}catch(NumberFormatException nfe){content.append("非法的端口,程序4 秒后关闭。

用Java Socket实现网络聊天室

用Java Socket实现网络聊天室

务的端 口为8 端 口. e n t 2 端 口, 0 t le 为 3 f p为 2 端 口。通常.从 0 1 2 t 1 — 0 3的端
程序使用 。
L号为系统保 留.大于 1 2 『 0 3提供给应 用 F i t t e m( e rnSra nw
B f e e o tu S r a u f r d u p t t em
t ryi
首先 分析一下聊天室的基 本功能 需

操 作系统的通 用网络编程标准 。在 网络 编程中最常用的方案便是客户 / 务器模 服 型。奉文提 出了在客户机 /服务器 模型 下用 j v o k t a a sc e 实现 I t r e n en t巾常见 的聊天 室软件 的解 决方案 。 Sc e o k t简介
e :
户 当用 户差 闭客 户 端退 出时 . 结束
与用户的 会话 .在服务器端注 销此用 户 2.客户 端 :提 供 良好 的用户 界 面 . 便 于用 户 进 行 连接 、交 谈 当与
个 具有 S c e 接 口的计算机通信 。『 okt 盏用 程序在 网络上传输 ,接收 的信 息都通过 这个 S c e 接 口来 实现 。在应 用开发中 okt
S s e u . r a l (E r r y tm o t p it n r o : e: )
端 有无 数据 发 出, 如有 则接 收数 据 , 更新显示 。 四 、聊 天室应 用程 序类音 规 划 9
经过分析 笔者主 要确定 了如下类 :
服务器端 :

如睹络上最通用 的 t 1 e 、f p等 .就 en t t 如主机 接收 到此请求 .则通信 建 是基于 s c e o k t的服 务程序 ,同一 台主机 立 .服务端产 生一个 S c e o k t实例 .同 可 以提供 多种 服 务,但他 们 并不冲 突 . 此 客 户端 进 行 通 信 ,如 上 。 只因为他们的通信端 口不同,如 h t t p服 然后客户端和服务端分别打 开相 应 的输入输 出流 进行数据 传送 。

基于Java多线程的聊天室程序

基于Java多线程的聊天室程序
的 网络 通信 链 接 实 现 数据 交 换 。即 服 务 器 和客 户 端 的应 用 程 序 各 有 一 个 S c e ,这 两个 S c e 把 服 务 器 和客 户 端 的程 序 连 接 okt okt 起 来 并 交换 数 据 。 ( )多线 程 :因 为 一 个 服 务 器 要 连 人 多 个 客 户 端 ,要 让 服 2 务 器 程 序 同时 为 多 个 客 户 服 务 , 就 需 要 为 每 个 客 户 端 开 辟 一
Bu f r dR a e b = n w Bu f r - fe e e d r r e fe e
d e d rn w n u S r a R a e (e Ip t te mRe d r e lp t te mO) a e ( g tn u S r a ) s ;
中 ,首 先 定 义 一 个 S reS c e, 并 指 明 端 口号 ,这 样 服 务 器 ev ro k t


t i. l n s = c in s h sc i t e l t; e
3 程序 实现
31 服 务 器 端 。
建 一个 类 ,名 称 为 C atev r h r re ,代 表 服 务 器 程 序 。 在 该 类 S
p bi v i u ) u l od rn({ c ty{ r
建立 好 之 后 .每 个 客 户端 的发 言 都 发 送 给 服 务 器 ,服 务 器 接 收 后 再 转 发 给所 有 连 入 的 客户 端 ,这 样 每 个 客 户 端就 都 能 收 到 其 他 客户 发 出 的信 息 了 。这 就 是 C S结 构 聊 天 室 的工 作 原 理 ,其 / 实现 主 要使 用 如 下 两 种技 术 :
p bi S re T ra S c e s Se l n s{ u l e v r he d(o k tsHa h tci t) c e

java聊天工具代码

java聊天工具代码
tamsg.append(exc.toString来自)); } }
else if(pareTo("close")==0) {
try {
DataInputStream is=new DataInputStream(socket.getInputStream());
if(pareTo("start")==0) {
try {
int po=Integer.parseInt(port.getText());
svsocket=new ServerSocket(po);
daemons=new Daemon[MAXUSER];
close.addActionListener(this);
add(panel2,BorderLayout.SOUTH);
tamsg=new TextArea();
tamsg.setBackground(Color.PINK);
tamsg.append("输入你要链接的地址,然后按(link)按钮\n");
}
catch (Exception exc) {
tamsg.append("error happended link\n");
tamsg.append(exc.toString());
}
}
else if(pareTo("id_ok")==0)
DataOutputStream os=new DataOutputStream(socket.getOutputStream());
os.write(strmsg.getBytes());

使用Java和WebSocket实现网页聊天室实例代码

使用Java和WebSocket实现网页聊天室实例代码

使⽤Java和WebSocket实现⽹页聊天室实例代码在没介绍正⽂之前,先给⼤家介绍下websocket的背景和原理:背景在浏览器中通过http仅能实现单向的通信,comet可以⼀定程度上模拟双向通信,但效率较低,并需要服务器有较好的⽀持; flash中的socket 和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使⽤这两项功能. 可以预见,如果websocket⼀旦在浏览器中得到实现,将会替代上⾯两项技术,得到⼴泛的使⽤.⾯对这种状况,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽并达到实时通讯。

在JavaEE7中也实现了WebSocket协议。

原理WebSocket protocol 。

现很多⽹站为了实现即时通讯,所⽤的技术都是轮询(polling)。

轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。

这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然⽽HTTP request 的header是⾮常长的,⾥⾯包含的有⽤数据可能只是⼀个很⼩的值,这样会占⽤很多的带宽。

⽽⽐较新的技术去做轮询的效果是Comet – ⽤了AJAX。

但这种技术虽然可达到全双⼯通信,但依然需要发出请求。

在 WebSocket API,浏览器和服务器只需要做⼀个握⼿的动作,然后,浏览器和服务器之间就形成了⼀条快速通道。

两者之间就直接可以数据互相传送。

在此WebSocket 协议中,为我们实现即时服务带来了两⼤好处:1. Header互相沟通的Header是很⼩的-⼤概只有 2 Bytes2. Server Push服务器的推送,服务器不再被动的接收到浏览器的request之后才返回数据,⽽是在有新数据时就主动推送给浏览器。

Java项目(Chat即时聊天系统)

Java项目(Chat即时聊天系统)

《Java程序设计实训》开发Chat即时聊天系统一、开放实验项目Java项目开发—Chat即时聊天系统二、开放实验时间201X.XX.XX—201X.XX.XX三、开放实验地点专业微机室二(B-4009)四、开放实验目的综合利用JDK、Eclipse开发环境,实现中小型项目的设计。

本系统采用C/S架构,基于TCP协议实现数据在服务器和客户端之间进行传输,实现聊天信息的存储。

通过“Chat即时聊天系统”的设计过程,深刻了解掌握面向对象程序设计语言Java的核心概念和特性;了解编程技术知识,学会处理异常状况,深入了解Java数据库功能,熟练掌握图形界面的操作技术,掌握Java应用软件的开发环境和开发过程;灵活选择程序设计思想,在编写过程中进一步体会Java与其它编程语言的不同之处,分析出Java的优点和先进之处。

同时,使学生能够深入的了解软件项目开发的流程和步骤,掌握每一部分的设计和实现方法,以及充分利用现有的软件工程设计工具来完成项目的设计。

五、开放实验内容1.概要设计采用Socket类建立套接字实现客户端与服务端的通讯。

总体数据流图服务端数据流图2.设计原理(1).利用多线程实现多客户机制。

服务器总是在指定的端口上监听是否有客户请求,一旦监听到客户请求,服务器就会启动一个专门的服务线程来响应该客户的请求,而服务器本身在启动完线程之后马上又进入监听状态,等待下一个客户的到来。

(2).服务器在接受客户方的请求后,立即高度一个线程以处理服务器与客户方之间的交互,主程序则返回继续监听端口,等待下一个客户的连接请求。

前一个线程在完成相应的交互过程后自动退出,连接也将自动关闭。

(3).在服务器的程序中首先创建单个Server Socket,并调用accept()来等候一个新连接,一旦accept()返回,就取得获得结果的Socket,并用它新建一个线程,令其只为那个特定的客户提供服务。

然后再调用accept(),等候下一个新的连接请求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
while(true){
this.sleep(100);
if(instr.ready()){
jTextArea1.append("服务器: "
+instr.readLine()+"\n");
}
}
}catch(Exception ex){
}
}
}
public void actionPerformed(ActionEvent e){
JPanel contentPane;
JLabel jLabel2 = new JLabel();
JTextField jTextField2 = new JTextField("4700");
JButton jButton1 = new JButton();
JLabel jLabel3 = new JLabel();
jLabel2.setText("端口号");
jLabel2.setFont(new java.awt.Font("宋体", 0, 14));
jTextField2.setBounds(new Rectangle(113, 27, 315, 24));
jButton1.setBounds(new Rectangle(440, 28, 73, 25));
jTextArea1.append("客户端已经连接到服务器\n");
MyThread t=new MyThread();
t.start();
}
}catch(Exception ex){
}
}
private void sendData(String s){//发送数据
try{
os= new PrintWriter(socket.getOutputStream());
JButton jButton2 = new JButton();
JScrollPane jScrollPane1 = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();
BufferedReader instr =null;
Socket socket = null;
JLabel jLabel2 = new JLabel();
JTextField jTextField2 = new JTextField("4700");
JButton jButton1 = new JButton();
JLabel jLabel3 = new JLabel();
JTextField jTextField3 = new JTextField();
服务器端:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import .*;
public class Server extends JFrame implements ActionListener{
String s=this.jTextField3.getText().trim();
sendData(s);
}
}
private void connectServer(String ip,int port){//连接
try{
if(jButton1.getText().trim().equals("连接")){
要求:聊天室服务器、聊天室客户端;客户端之间可以聊天。
因为我是初级选手,想借此程序分析学习java,所以代码最好多一点注释...
分数有限,望大家不吝赐教!!问题补充:
需要图形用户界面哦,最好用swing组件
服务器端:采用多线程,可以向客户广播:当前聊天室人数,客户名称列表,客户进入离开提示;
客户端:可以设定昵称,性别,客户间可以私聊
ServerSocket server = null;
Socket socket = null;BufferedReader instr =null;PrintWriter os=null ;
//Construct the frame
public Server() {
jbInit();
}
class MyThread extends //该线程负责接受数据
jButton1.setText("连接服务器...");
socket=new Socket(ip,port);
jButton1.setText("正在聊天");
MyThread t=new MyThread();
t.start();
}
}catch(Exception ex){
}
}
private void sendData(String s){//发送数据
listenClient(port);
}
if(e.getSource()==jButton2){
String s=this.jTextField3.getText().trim();
sendData(s);
}
}
private void listenClient(int port){//侦听
try{
if(jButton1.getText().trim().equals("侦听")){
jTextField3.setText("");
jButton2.setText("发送");
jButton2.setActionCommand("jButton1");
jButton2.setBorder(BorderFactory.createEtchedBorder());
jButton2.setFont(new java.awt.Font("Dialog", 0, 14));
if(e.getSource()==jButton1){
String ip=jTextField3.getText().trim();
int port=Integer.parseInt(jTextField2.getText().trim());
connectServer(ip,port);
}
if(e.getSource()==jButton2){
jScrollPane1.getViewport().add(jTextArea1, null);
jButton1.addActionListener(this);
jButton2.addActionListener(this);
this.addWindowListener(new WindowAdapter(){
import java.io.*;
import .*;
public class Client extends JFrame implements ActionListener{
JPanel contentPane;
JLabel jLabel1 = new JLabel();
JTextField jTextField1 = new JTextField("127.0.0.1");
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(null);
this.setSize(new Dimension(540, 340));
this.setTitle("服务器");
jLabel2.setBounds(new Rectangle(22, 27, 72, 28));
contentPane.add(jLabel3, null);
contentPane.add(jTextField3, null);
contentPane.add(jButton2, null);
contentPane.add(jScrollPane1, null);
contentPane.add(jLabel2, null);
os.println(s);
os.flush();
if(!s.equals("已经成功连接。。。"))
this.jTextArea1.append("Server:"+s+"\n");
}catch(Exception ex){
}
}
//Component initialization
private void jbInit() {
jLabel3.setBounds(new Rectangle(23, 57, 87, 28));
jLabel3.setText("请输入信息");
jLabel3.setFont(new java.awt.Font("宋体", 0, 14));
jTextField3.setBounds(new Rectangle(114, 60, 314, 24));
jButton2.setBounds(new Rectangle(440, 58, 73, 25));
jScrollPane1.setBounds(new Rectangle(23, 92, 493, 189));
contentPane.add(jTextField2, null);
contentPane.add(jButton1, null);
public void run(){
相关文档
最新文档