`
dkplus
  • 浏览: 18796 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

聊天室java

阅读更多

最近写了一段聊天室java代码

/*  dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边(java网络编程,seo网站优化,web开发,lnmp,java网络编程,毕业论文设计),独立制作视频和ppt和音频微信公众号,点击进入 dkplus官方博客http://dkplus.iteye.com 微信搜索dkplus关注公众号可获取海量计算机周边资源。 */  
package com.server;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
 
import javax.swing.*;
 
public class ServerWindow extends JFrame{
     
    @SuppressWarnings("unchecked")
    public ServerWindow()
    {
        Server ss = new Server();
        Thread t = new Thread(ss);
        t.start();
         
        dialogArea = new JTextArea(11,47);
        dialogArea.setLineWrap(true);
        dialogArea.setFont(messageFont);
        dialogScrollPane = new JScrollPane(dialogArea);
        dialogPanel = new JPanel();
        dialogPanel.add(dialogScrollPane);
         
        speedInput = new JComboBox(new String[]{
                "What can I do for you, my son?",
                "Oh,sorry,son,I cann't do that for you."
        });
        speedInput.setActionCommand("speedInput");
         
        Action action = new Action();
        speedInput.addActionListener(action);
         
        comboxPanel = new JPanel();
        comboxPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
        comboxPanel.setBorder(BorderFactory.createEtchedBorder());
        comboxPanel.add(speedInput);
         
        panel1 = new JPanel();
        panel1.setLayout(new BorderLayout());
        panel1.add(dialogPanel,BorderLayout.CENTER);
         
        inputArea = new JTextArea(11,47);
        inputArea.setLineWrap(true);//设置自动换行
        inputArea.setFont(messageFont);
        inputPanel = new JPanel();
        inputPanel.add(inputArea);
         
         
        enterButton = new JButton("Enter");
        enterButton.setActionCommand("enterButton");
        enterButton.addActionListener(action);
        buttonPanel = new JPanel();
        buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
        buttonPanel.add(enterButton);
         
        panel2 = new JPanel();
        panel2.setLayout(new BorderLayout());
        panel2.add(comboxPanel,BorderLayout.NORTH);
        panel2.add(inputPanel,BorderLayout.CENTER);
        panel2.add(buttonPanel,BorderLayout.SOUTH);
         
        setLayout(new GridLayout(2,1));
        add(panel1);
        add(panel2);
         
    }
 
     
//  class Server extends Thread{
        class Server implements Runnable{
         
        public void run(){
        try {
        try {
            server = new ServerSocket(6666);
            client = server.accept();
             
            InputStream isr = client.getInputStream();
            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(isr);
//          while(scanner.hasNextLine())
//          {
                inputMessage = scanner.nextLine();  
//          }
                 
//          InputStreamReader isr = new InputStreamReader(client.getInputStream());
//          BufferedReader bf = new BufferedReader(isr);
//          inputMessage = bf.readLine();
            dialogArea.append("Client:\n"+inputMessage);
            System.out.println("服务器在监听");
             
            pw = new PrintWriter(client.getOutputStream(),true);
//          pw.println(clientMessage);
//          outputMessage = inputArea.getText();
            System.out.println("Stream output "+outputMessage+"\n");
//          pw.println(outputMessage);
//          pw.write(outputMessage);
             
             
        }
        finally{
//          server.close();
//          client.close();
        }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
                     
         
        }
         
        private ServerSocket server = null;
        private Socket client = null;
    }
 
     
     
    class Action implements ActionListener
    {
         
        public void actionPerformed(ActionEvent e) {
             
            if(e.getActionCommand() == "enterButton"){
            outputMessage = inputArea.getText();
            System.out.println("outputMessageByenterButton"+outputMessage+"\n");//测试语句可以得到该语句
            dialogArea.append("Server:\n"+outputMessage+"\n");
            inputArea.setText(null);//将输入域清屏
             
            }else if(e.getActionCommand() == "speedInput"){
         
                outputMessage = (String)speedInput.getSelectedItem();
                inputArea.setText(outputMessage);
                System.out.println("inputAreaByspeedInput  outputMessage = "+outputMessage+"\n");
                pw.write(outputMessage);
            }
             
        }
         
    }
     
    private PrintWriter pw = null;
    private static String inputMessage = null;//显示到dialogArea的信息
    private static String outputMessage = null;
     
    JTextArea dialogArea = null;
    JTextArea inputArea = null;
    JScrollPane dialogScrollPane = null;
    JComboBox speedInput = null;
    JButton enterButton = null;
    JPanel dialogPanel = null,comboxPanel = null,inputPanel = null,buttonPanel = null;
    JPanel panel1 = null,panel2 = null;
    Font messageFont = new Font("仿宋",Font.BOLD,16);
//  Font nameFont = new Font("仿宋",Font.BOLD,14);
}

 

/*  dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边(java网络编程,seo网站优化,web开发,lnmp,java网络编程,毕业论文设计),独立制作视频和ppt和音频微信公众号,点击进入 dkplus官方博客http://dkplus.iteye.com 微信搜索dkplus关注公众号可获取海量计算机周边资源。 */  
package com.server;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
 
import javax.swing.*;
 
public class ServerWindow extends JFrame{
     
    @SuppressWarnings("unchecked")
    public ServerWindow()
    {
        Server ss = new Server();
        Thread t = new Thread(ss);
        t.start();
         
        dialogArea = new JTextArea(11,47);
        dialogArea.setLineWrap(true);
        dialogArea.setFont(messageFont);
        dialogScrollPane = new JScrollPane(dialogArea);
        dialogPanel = new JPanel();
        dialogPanel.add(dialogScrollPane);
         
        speedInput = new JComboBox(new String[]{
                "What can I do for you, my son?",
                "Oh,sorry,son,I cann't do that for you."
        });
        speedInput.setActionCommand("speedInput");
         
        Action action = new Action();
        speedInput.addActionListener(action);
         
        comboxPanel = new JPanel();
        comboxPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
        comboxPanel.setBorder(BorderFactory.createEtchedBorder());
        comboxPanel.add(speedInput);
         
        panel1 = new JPanel();
        panel1.setLayout(new BorderLayout());
        panel1.add(dialogPanel,BorderLayout.CENTER);
         
        inputArea = new JTextArea(11,47);
        inputArea.setLineWrap(true);//设置自动换行
        inputArea.setFont(messageFont);
        inputPanel = new JPanel();
        inputPanel.add(inputArea);
         
         
        enterButton = new JButton("Enter");
        enterButton.setActionCommand("enterButton");
        enterButton.addActionListener(action);
        buttonPanel = new JPanel();
        buttonPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
        buttonPanel.add(enterButton);
         
        panel2 = new JPanel();
        panel2.setLayout(new BorderLayout());
        panel2.add(comboxPanel,BorderLayout.NORTH);
        panel2.add(inputPanel,BorderLayout.CENTER);
        panel2.add(buttonPanel,BorderLayout.SOUTH);
         
        setLayout(new GridLayout(2,1));
        add(panel1);
        add(panel2);
         
    }
 
     
//  class Server extends Thread{
        class Server implements Runnable{
         
        public void run(){
        try {
        try {
            server = new ServerSocket(6666);
            client = server.accept();
             
            InputStream isr = client.getInputStream();
            @SuppressWarnings("resource")
            Scanner scanner = new Scanner(isr);
//          while(scanner.hasNextLine())
//          {
                inputMessage = scanner.nextLine();  
//          }
                 
//          InputStreamReader isr = new InputStreamReader(client.getInputStream());
//          BufferedReader bf = new BufferedReader(isr);
//          inputMessage = bf.readLine();
            dialogArea.append("Client:\n"+inputMessage);
            System.out.println("服务器在监听");
             
            pw = new PrintWriter(client.getOutputStream(),true);
//          pw.println(clientMessage);
//          outputMessage = inputArea.getText();
            System.out.println("Stream output "+outputMessage+"\n");
//          pw.println(outputMessage);
//          pw.write(outputMessage);
             
             
        }
        finally{
//          server.close();
//          client.close();
        }
        }
        catch (IOException e) {
            e.printStackTrace();
        }
                     
         
        }
         
        private ServerSocket server = null;
        private Socket client = null;
    }
 
     
     
    class Action implements ActionListener
    {
         
        public void actionPerformed(ActionEvent e) {
             
            if(e.getActionCommand() == "enterButton"){
            outputMessage = inputArea.getText();
            System.out.println("outputMessageByenterButton"+outputMessage+"\n");//测试语句可以得到该语句
            dialogArea.append("Server:\n"+outputMessage+"\n");
            inputArea.setText(null);//将输入域清屏
             
            }else if(e.getActionCommand() == "speedInput"){
         
                outputMessage = (String)speedInput.getSelectedItem();
                inputArea.setText(outputMessage);
                System.out.println("inputAreaByspeedInput  outputMessage = "+outputMessage+"\n");
                pw.write(outputMessage);
            }
             
        }
         
    }
     
    private PrintWriter pw = null;
    private static String inputMessage = null;//显示到dialogArea的信息
    private static String outputMessage = null;
     
    JTextArea dialogArea = null;
    JTextArea inputArea = null;
    JScrollPane dialogScrollPane = null;
    JComboBox speedInput = null;
    JButton enterButton = null;
    JPanel dialogPanel = null,comboxPanel = null,inputPanel = null,buttonPanel = null;
    JPanel panel1 = null,panel2 = null;
    Font messageFont = new Font("仿宋",Font.BOLD,16);
//  Font nameFont = new Font("仿宋",Font.BOLD,14);
}

 

0
0
分享到:
评论

相关推荐

    简单聊天室java代码

    【标题】"简单聊天室java代码"所涉及的知识点主要集中在Java编程语言和网络编程领域,尤其是构建基于Java的实时通信应用。这个项目可能是一个基本的多用户交互平台,允许用户通过网络发送和接收文本消息。 【描述】...

    聊天室java课程设计.doc

    聊天室java课程设计

    网络聊天室java实现

    【网络聊天室java实现】是基于Java编程语言的网络通信项目,主要运用了Java的Socket编程来构建一个多人在线实时交流的平台。在Java中,Socket是网络通信的基础,它为两台机器间的应用程序提供了双向通信的通道。通过...

    聊天室_java_聊天室_java聊天室_聊天室java_supportbnd_

    综上所述,"聊天室_java_聊天室_java聊天室_聊天室java_supportbnd_"这个项目涵盖了Java语言的核心特性,如网络编程、多线程、UI设计,以及软件开发中的最佳实践,如依赖管理、安全性考量和测试策略。通过这个项目,...

    aa.rar_java聊天_java聊天室_qq聊天_tcpServlet_聊天室 java

    在IT领域,构建一个基于TCP/IP的Java聊天室是一项常见的任务,这涉及到网络编程和并发处理等核心概念。本文将详细解析"aa.rar_java聊天_java聊天室_qq聊天_tcpServlet_聊天室 java"这个主题中涉及的技术点。 首先,...

    网页聊天室 java 源码

    【网页聊天室 Java 源码】是一种基于Java技术实现的在线实时通信系统,主要用于提供多人之间的文字或语音交流功能。这个源码是基于J2EE(Java 2 Platform, Enterprise Edition)架构开发的,因此它包含了服务器端和...

    聊天室java代码实现

    在提供的“聊天室java代码”压缩包中,可能包含了服务器端和客户端的Java源代码文件,通过阅读和理解这些代码,你可以看到上述概念如何在实际项目中应用。同时,这也是一个很好的学习机会,通过实践加深对Java网络...

    UI多人聊天室Java源码

    综上所述,这个"UI多人聊天室Java源码"项目涵盖了Java网络编程、多线程处理、GUI设计、事件处理、字符串操作、异常处理等多个重要知识点,是学习和实践Java基础和进阶技能的理想平台。通过实际操作和调试这个项目,...

    局域网聊天室java源代码

    【局域网聊天室java源代码】是一种基于Java编程语言实现的本地网络通信应用,它允许在同一局域网内的用户进行实时的文本聊天。这个项目的核心在于利用Java的Socket编程来构建客户端和服务器端的通信架构,实现了基本...

    简单UDP聊天室 java版

    【标题】:“简单UDP聊天室 java版” 【描述】中的知识点主要涉及到的是基于Java实现的一个简单的用户数据报协议(UDP)聊天室。UDP是一种无连接的、不可靠的传输层协议,它在互联网协议族中扮演着重要的角色。这个...

    聊天室Java程序(测试版)

    【标题】:“聊天室Java程序(测试版)” 这个Java聊天室程序是一个基础的交互式应用,主要用于模拟多人在线聊天的场景。它采用Java编程语言编写,提供了基本的聊天功能,包括用户注册、登录、发送消息、接收消息等...

    简单聊天室java课程设计

    在本“简单聊天室java课程设计”项目中,我们将探讨如何使用Java编程语言来构建一个基本的聊天室应用。这个课程设计旨在让学生掌握Java网络编程、多线程以及用户交互等核心概念。以下是对这个项目涉及的主要知识点的...

    聊天室 java socket

    在【标题】"聊天室 java socket"中,我们了解到这是一个基于Java Socket实现的简单聊天室程序。它可能是一个多用户交互的平台,允许用户通过网络发送和接收消息。由于开发者提到“时间紧,制作不是非常完善”,这...

    Java版聊天室

    Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室Java版聊天室

    Java_Chart.rar_聊天室 java_聊天室程序

    【Java_Chart.rar_聊天室 java_聊天室程序】是一个包含多个Java实现的聊天室程序的压缩包。这个资源提供了不同类型的聊天室解决方案,适用于学习和实践Java的Socket编程技术。以下是这些文件所涵盖的关键知识点: 1...

    简单TCP聊天室 java版

    本项目“简单TCP聊天室 Java版”提供了一个基础的平台,让多个用户可以通过TCP协议进行实时交流。尽管描述中提到该聊天室功能并不完善,但其核心概念和技术值得我们深入探讨。 首先,我们要理解TCP协议的基本特性。...

    java实现聊天室java实现聊天室

    java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java实现聊天室java...

    基于TCP协议的聊天室JAVA版

    【基于TCP协议的聊天室JAVA版】 在计算机网络通信领域,TCP(Transmission Control Protocol)协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。它为两台主机提供了一个端到端的通信服务,确保数据的...

    JAVAJSP的聊天室Java源码

    **Java与JSP技术概述** Java是一种广泛使用的面向对象...以上就是基于Java和JSP的聊天室实现的核心知识点,包括了Java基础、JSP原理、网络编程以及Web开发的相关技术。这个源码可以作为学习和实践这些技术的宝贵资源。

    网络聊天室java ,C/S

    【标题】:“网络聊天室java,C/S” 【描述】:“这是一个基于Java技术实现的聊天室项目,采用了经典的客户端/服务器(C/S)架构。在这个项目中,我们将深入理解Java网络编程,以及如何构建一个实时通信的应用。” ...

Global site tag (gtag.js) - Google Analytics