📄 client.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 + -