?? myclient.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 + -