⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client.java

📁 一个用java编写的聊天程序
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class Client extends Frame implements ActionListener{
	 MenuBar m_Menu_Bar;
	  Menu menuFile,menuEdit,menuHelp;
	  MenuItem mi_File_Open,mi_File_Close,mi_File_Exit,mi_Edit_Copy,mi_Edit_Paste;
	  MenuItem pi_New,pi_Del,pi_Pro,mi_Help_Sub;
	  CheckboxMenuItem mi_Edit_Cut;
	  PopupMenu popM;
	  
	    Socket ClientSocket;
         PrintStream os;
         DataInputStream is;
         String s;
         Label MyLabel=new Label("                      欢迎使用本系统!");
         TextArea textarea;
         Button MyButton=new Button("发 送 消 息");

	
   MenuBar mb=new MenuBar();//以下生成菜单组件对象
   Menu m1=new Menu("文件");
   MenuItem open=new MenuItem("打开");
   MenuItem close=new MenuItem("关闭");
   MenuItem  exit=new MenuItem("退出");
   
   Menu m3=new Menu("帮助");
   MenuItem  content=new MenuItem("目录");
   MenuItem  index=new MenuItem("索引");
   MenuItem  about=new MenuItem("关于");
   
public Client() {
	   setTitle("Client Window(客户端窗口)");
                   setLayout(new BorderLayout());
                   this.addWindowListener(new WinAdptClient(this));
                   MyButton.addActionListener(this);
                  

                   textarea=new TextArea(13,55);

                   popM=new PopupMenu();
	           pi_New=new MenuItem(" 新建 ");
	           pi_New.addActionListener(this);
	           popM.add(pi_New);
		   pi_Del=new MenuItem(" 删除 ");
		   pi_Del.addActionListener(this);
		   popM.add(pi_Del);
                   pi_Pro=new MenuItem(" 属性 ");
                   pi_Pro.addActionListener(this);
		   popM.add(pi_Pro);
   
   m1.add(open);//将菜单项加入到菜单中
   m1.add(close);
   m1.addSeparator();//将分隔条加入到菜单中
   m1.add(exit);
   exit.addActionListener(this);//注册菜单项的事件监听者
   mb.add(m1);//将菜单加入到菜单条中
   
   m3.add(content);
   m3.add(index);
   m3.addSeparator();
   m3.add(about);
   mb.add(m3);
   
   setMenuBar(mb);//显示菜单条
   show();
   add("North",MyLabel);
   add("South",MyButton);
   add("Center",textarea);
   pack();
   connect();
	}

public void connect()
      {
        try{
             ClientSocket=new Socket("localhost",6544);
             os=new PrintStream(
                  new BufferedOutputStream(ClientSocket.getOutputStream()));
             is=new DataInputStream(
                  new BufferedInputStream(ClientSocket.getInputStream()));
             s=is.readLine();
               textarea.appendText(s+"\n");
            }
             catch(Exception e){}
      }

    public void itemStateChanged(ItemEvent e)//响应CHECKBOXMENUITEM被点击事件
	{
		 if(e.getSource()==mi_Edit_Cut)
			 if(((CheckboxMenuItem)e.getSource()).getState())//查看是否被选中
		       textarea.setText("\n\n\n\n\n\n\t\t\t"+"you have chosen "+
				   ((CheckboxMenuItem)e.getSource()).getLabel());
			 else
				 textarea.setText("\n\n\n\n\n\n\t\t\t"+"you have not chosen "+

                     ((CheckboxMenuItem)e.getSource()).getLabel());


        }

      public void actionPerformed(ActionEvent e)
        {
             if(e.getActionCommand()=="退出")
			{
				dispose();
				System.exit(0);
			} 
            if(e.getSource()==MyButton)
              {
                try{
                       os.print(textarea.getText());
                       os.flush();
                    }
                   catch(Exception e1){}
               }
          }
   public static void main(String[] args) {
	new Client();}    
 }

  class WinAdptClient extends WindowAdapter   
        { Client m_Parent;
          WinAdptClient(Client p)
          {
                m_Parent=p;
           }
         public void windowClosing(WindowEvent e)
          {
             try{//关闭窗口前先向SERVER端发送结束信息,并关闭各输入输出流与连接
                       m_Parent.os.println("Bye");
                       m_Parent.os.flush();
                       m_Parent.is.close();
                       m_Parent.os.close();
                       m_Parent.ClientSocket.close();
                       m_Parent.dispose();
                       System.exit(0);
                }catch(IOException e2){}
          }
          }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -