聊天室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);
}

 

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Servlet之JSP概述 - 2016-09-16 14:09:06

一、什么是JSP JSP (Java Server Pages) 提供一种简便、快速的方式以生成动态的(dynamic)网页内容。 JSP运行原理 JSP 是 Servlet 的模板文件。 JSP最终由 Web 容器解析生成 Servlet 类( .java 文件),并编译成为 .class 文件,最后执行。 植入 JAVA 代码 可以告诉解析器,JSP 模板中的哪一部分是原生的 JAVA 代码,不需要解析。 在JSP中使用 % % 嵌入 JAVA 代码。 被 web 容器基于 JSP 文件而解析生成的
    最近项目遇到一个问题     要求项目对外提供的接口要保证每秒接受报文的能力达到  40个/秒(项目架构用的spring mvc),     而目前我这个接口不做任何操作,接受请求后直接返回,也才70个/秒的样子,如果收到报文做一次存储处理的话 就只有30个/秒的样子,求教下哪位有什么好的优化方案,可以从哪些方面做优化

3d文字 - 2016-09-15 17:09:05

最近写了一段代码 /* dkplus专业搜集和编写实用电脑软件教程,搜集各种软件资源和计算机周边(java网络编程,seo网站优化,web开发,lnmp,java网络编程,毕业论文设计),独立制作视频和ppt和音频微信公众号,点击进入 dkplus官方博客http://dkplus.iteye.com 微信搜索dkplus关注公众号可获取海量计算机周边资源。 */import java.applet.Applet;import java.awt.*;public class Text3DApplet ex

学习SSH框架 - 2016-09-15 17:09:05

1.SSH框架的认知 在做相关的java的网页的开发制作时,良好的层次分解是十分有比要的,所以我们在云涌第三方的框架之下来简化还有名了我们相关的网站的开发。 SSH框架实则为Struct + spring + hibernate 的三个组成的,其中 struct ,专注与前台的相关的请求的所对应的ActionForm还有其相关跳转的Action来处理得到相关的JSP页面,从而来更新或是条状到相关用户的请求的服务页面,或是信息页面。而 Hibernate 的作用是体现在数据的持久化的层次中,我们对于页面,通
package com.erp.util;   import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.io.StringWriter; import java.net.HttpURLC
如题,大家可以参考参考 package lesson12;import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class lesson12 {/** * 输入两个正整数m和n,求其最大公约数和最小公倍数 */public static void main(String args[]) {// ListInteger list=new ArrayList();Scanner scan = new S
private File file; private String fileFileName; private String picture; InputStream is = new FileInputStream(file); //引入一个IO流的输入流String root = ServletActionContext.getRequest() .getRealPath("/bookpicture"); //通过REQUEST来得到相对地址,并在后面加上/bookpictureFile f = ne

java-选择排序 - 2016-09-15 14:09:03

public class ChoiceSort {//选择排序public static void choiceSort(int[] a){int i,j,temp;int min=0;for(i=0; ia.length;i++){min=i; //将当前下标定义为最小值下标for(j=i+1;ja.length;j++){if(a[min]a[j]){/* 如果有小于当前最小值的关键字 */ min=j;/* 将此关键字的下标赋值给min */ }}if(i!=min){/* 若min不等于i,说明找

java-插入排序 - 2016-09-15 14:09:03

1、基本思想:每步将一个待排序的记录,按其顺序码大小插入到前面已经排序的字序列的合适位置(从后向前找到合适位置后),直到全部插入排序完为止。 /** * 插入排序 * * 从第一个元素开始,该元素可以认为已经被排序 * 取出下一个元素,在已经排序的元素序列中从后向前扫描 * 如果该元素(已排序)大于新元素,将该元素移到下一位置 * 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 * 将新元素插入到该位置中 * 重复步骤2 * @param numbers 待排序数组 */ public stati

JAVA和C++区别 - 2016-09-15 14:09:03

Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。 Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,兄弟连JavaEE培训  ,并且编