SIMPLECHAT程序(一对多聊天源代码 JAVA)

上传人:豆浆 文档编号:24902884 上传时间:2017-12-08 格式:PDF 页数:5 大小:74.55KB
返回 下载 相关 举报
SIMPLECHAT程序(一对多聊天源代码 JAVA)_第1页
第1页 / 共5页
SIMPLECHAT程序(一对多聊天源代码 JAVA)_第2页
第2页 / 共5页
SIMPLECHAT程序(一对多聊天源代码 JAVA)_第3页
第3页 / 共5页
SIMPLECHAT程序(一对多聊天源代码 JAVA)_第4页
第4页 / 共5页
SIMPLECHAT程序(一对多聊天源代码 JAVA)_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《SIMPLECHAT程序(一对多聊天源代码 JAVA)》由会员分享,可在线阅读,更多相关《SIMPLECHAT程序(一对多聊天源代码 JAVA)(5页珍藏版)》请在金锄头文库上搜索。

1、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 .ServerSo

2、cket;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.JToolB

3、ar;public class wyhChatRoom extends JFrame implements ActionListenerprivate String name; /服务器聊天室的图形用户界面private JComboBox combox; /网名private JTextField text; /输入IP地址或域名的组合框private JTabbedPane tab; /选项卡窗格,每页与一个Socket通信public wyhChatRoom(int port ,String name) throws IOExceptionsuper(聊天室+name+ +InetAdd

4、ress.getLocalHost()+端口:+port);this.setBounds(3 2 0 , 2 4 0 , 4 4 0 , 2 4 0 );this.setDefaultCloseOperation(EXIT_ON_CLOSE);JToolBar toolbar=new JToolBar(); /工具栏this.getContentPane().add(toolbar,North);toolbar.add(new JLabel(主机);combox=new JComboBox();combox.addItem(1 2 7 .0 .0 .1 );toolbar.add(combox

5、);combox.setEditable(true);toolbar.add(new JLabel(端口);text=new JTextField(1 2 5 1 );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);t

6、his.setVisible(true);this.name=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()=连接) S

7、tring host=(String)combox.getSelectedItem();int port=Integer.parseInt(text.getText();trytab.addTab(name, new TabPageJPanel(new Socket(host,port);/连接成功tab添加页tab.setSelectedIndex(tab.getTabCount()-1 );/tab指定新页为选中状态catch(IOException e1 )e1 .printStackTrace();/面板内部类,每个对象表示选项卡窗格的一页,包含一个Socket和一个线程private

8、 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_rece

9、iver=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(1 6 );panel.add(this.text_sender);this.text_sender.addActionListener(this);String strs=发送,离线,删除页;buttons =new JButto

10、nstrs.length;for (int i = 0 ; i buttons.length; i+) buttonsi=new JButton(strsi);panel.add(buttonsi);buttonsi.addActionListener(this);buttons2 .setEnabled(false);this.socket=socket;this.thread=new Thread(this);this.thread.start();Overridepublic void run() try this.cout =new PrintWriter(socket.getOutp

11、utStream(),true);this.cout.println(name);/发送自己网名给对方BufferedReader cin=new BufferedReader(newInputStreamReader(socket.getInputStream();String name=cin.readLine(); /接收对方网名index=tab.getSelectedIndex();tab.setTitleAt(index, name);String aline=cin.readLine();while(aline!=null cin.close();cout.close();soc

12、ket.close();buttons0 .setEnabled(false);/接收方的发送按钮无效buttons1 .setEnabled(false);/接收方的离线按钮无效buttons2 .setEnabled(false);/接收方的删除按钮无效 catch (Exception e) e.printStackTrace();Overridepublic void actionPerformed(ActionEvent e) if(e.getActionCommand()=发送)this.cout.println(name+说:+text_sender.getText();text

13、_receiver.append(我说:+text_sender.getText()+n);text_sender.setText();if(e.getActionCommand()=离线) text_receiver.append(我离线n);this.cout.println(name+离线n+bye);buttons0 .setEnabled(false);buttons1 .setEnabled(false);buttons2 .setEnabled(false);public static void main(String args) throws IOException new wyhChatRoom(2 0 0 1 , 航哥哥);/启动服务端,约定端口,指定网名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号