欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

聊天室java

程序员文章站 2022-07-13 23:26:42
...

最近写了一段聊天室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);
}

 

上一篇: 调色板的代码

下一篇: 3d文字