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

📄 myclient.java

📁 第6章 Java C/S结构编程 197 实例67 实现C/S多线程 198 实例68 客户端程序 200 实例69 服务器端程序 201 实例70 C/S结构
💻 JAVA
字号:
//client端的程序如下:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
public class MyClient extends Frame implements ActionListener,ItemListener
{
          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("发 送 消 息");

  public MyClient()
   {
                   setTitle("Client Window(客户端窗口)");
                   setLayout(new BorderLayout());
                  
                   this.addWindowListener(new WinAdptClient(this));
                   MyButton.addActionListener(this);
                  

                   textarea=new TextArea(13,55);
//8888888888888888888888888888888888888888888888888888888888888888888888888888//
                   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);
		 
		    m_Menu_Bar=new MenuBar();
		   menuFile=new Menu("文件");
		   mi_File_Open=new MenuItem("打开");
		   mi_File_Open.setShortcut(new MenuShortcut('f'));
		   mi_File_Close=new MenuItem("关闭",new MenuShortcut('s'));
		   mi_File_Exit=new MenuItem("退出",new MenuShortcut('x'));

		   mi_File_Open.setActionCommand("打开");
		   mi_File_Close.setActionCommand("关闭");
		   mi_File_Exit.setActionCommand("退出");

		   mi_File_Open.addActionListener(this);
		   mi_File_Close.addActionListener(this);
		   mi_File_Exit.addActionListener(this);

		     menuFile.add(mi_File_Open);
		     menuFile.add(mi_File_Close);
		     menuFile.add(mi_File_Exit);

			 m_Menu_Bar.add(menuFile);


			 menuEdit=new Menu("编辑");
			  mi_Edit_Copy=new MenuItem("复制");
			  mi_Edit_Paste=new MenuItem("粘贴");
			  mi_Edit_Cut=new CheckboxMenuItem("CUT");
			  mi_Edit_Copy.setActionCommand("复制");
			  mi_Edit_Paste.setActionCommand("粘贴");

			  mi_Edit_Copy.addActionListener(this);
			  mi_Edit_Paste.addActionListener(this);
			  mi_Edit_Cut.addItemListener(this);

			  menuEdit.add(mi_Edit_Copy);
			  menuEdit.add(mi_Edit_Paste);
		          menuEdit.addSeparator();
		          menuEdit.add(mi_Edit_Cut);
			  m_Menu_Bar.add(menuEdit);

                          menuHelp=new Menu("帮助");
                          mi_Help_Sub=new MenuItem("主题");
                          menuHelp.add(mi_Help_Sub);
                          m_Menu_Bar.add(menuHelp);
			  this.setMenuBar(m_Menu_Bar);
//*********************************************************************************//







                    add("North",MyLabel);
                    add("South",MyButton);
                    add("Center",textarea);
                    setResizable(false);
                    pack();
                    show();
                    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 MyClient();
          }
 }

   class WinAdptClient extends WindowAdapter
     {
         MyClient m_Parent;
         WinAdptClient(MyClient 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 + -