河南理工大学本科生毕业设计(论文)说明书
过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,比如文件传输等,服务器收到来自客户的请求后,针对不同的消息处理请求。
客户端程序流程图如图4-3:
图4-3 客户端程序流程图
程序如下:
import java.awt.*;
import java.awt.event.*; import javax.swing.*;
import javax.swing.event.*; import java.io.*; import java.net.*;
public class ChatClient extends JFrame implements ActionListener{ String ip=\
31
河南理工大学本科生毕业设计(论文)说明书
int port=8888;
String userName=\匆匆过客\ int type=0; Image icon;
JComboBox combobox; JTextArea messageShow;
JScrollPane messageScrollPane;
JLabel express,sendToLabel,messageLabel; JTextField clientMessage; JCheckBox checkbox; JComboBox actionlist;
JButton clientMessageButton; JTextField showStatus; Socket socket;
ObjectOutputStream output; ObjectInputStream input; ClientReceive recvThread;
JMenuBar jMenuBar=new JMenuBar();
JMenu operateMenu=new JMenu(\操作(O)\
JMenuItem loginItem=new JMenuItem(\用户登录(I)\ JMenuItem logoffItem=new JMenuItem(\用户注销(L)\ JMenuItem exitItem=new JMenuItem(\退出(X)\ JMenu conMenu=new JMenu(\设置(C)\
JMenuItem userItem=new JMenuItem(\用户设置(U)\ JMenuItem connectItem=new JMenuItem(\连接设置(C)\ JMenu helpMenu=new JMenu(\帮助(H)\
JMenuItem helpItem=new JMenuItem(\帮助(H)\ JToolBar toolBar=new JToolBar(); JButton loginButton; JButton logoffButton; JButton userButton; JButton connectButton; JButton exitButton;
Dimension faceSize=new Dimension(500,700); JPanel downPanel;
GridBagLayout gridBag;
GridBagConstraints gridBagCon; public ChatClient() {
32
河南理工大学本科生毕业设计(论文)说明书
init();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack();
this.setSize(faceSize);
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize(); this.setLocation((int)(screenSize.width-faceSize.getWidth())/2,(int)
(screenSize.height-faceSize.getHeight())/2);
this.setResizable(false);
this.setTitle(\聊天室客户端\ icon=getImage(\ this.setIconImage(icon); //show();
setVisible(true);
operateMenu.setMnemonic('O'); loginItem.setMnemonic('I');
loginItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I,InputEvent.CTRL_MASK));
logoffItem.setMnemonic('L');
logoffItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
exitItem.setMnemonic('X');
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
conMenu.setMnemonic('C'); userItem.setMnemonic('U');
userItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
connectItem.setMnemonic('C');
connectItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
helpMenu.setMnemonic('H'); helpItem.setMnemonic('H');
helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.CTRL_MASK)); }
public void init(){
Container contentPane=getContentPane();
33
河南理工大学本科生毕业设计(论文)说明书
contentPane.setLayout(new BorderLayout());
operateMenu.add(loginItem); operateMenu.add(logoffItem); operateMenu.add(exitItem); jMenuBar.add(operateMenu); conMenu.add(userItem); conMenu.add(connectItem); jMenuBar.add(conMenu); helpMenu.add(helpItem); jMenuBar.add(helpMenu); setJMenuBar(jMenuBar);
loginButton=new JButton(\登录\ logoffButton=new JButton(\注销\ userButton=new JButton(\用户设置\ connectButton=new JButton(\连接设置\ exitButton=new JButton(\退出\
loginButton.setToolTipText(\连接到指定的服务器\ logoffButton.setToolTipText(\与服务器断开连接\ userButton.setToolTipText(\设置用户信息\
connectButton.setToolTipText(\设置所要连接到的服务器信息\ toolBar.add(userButton); toolBar.add(connectButton); toolBar.addSeparator(); toolBar.add(loginButton); toolBar.add(logoffButton); toolBar.addSeparator(); toolBar.add(exitButton);
contentPane.add(toolBar,BorderLayout.NORTH); checkbox=new JCheckBox(\悄悄话\ checkbox.setSelected(false); actionlist=new JComboBox(); actionlist.addItem(\微笑地\ actionlist.addItem(\高兴地\ actionlist.addItem(\轻轻的\ actionlist.addItem(\生气地\ actionlist.addItem(\小心地\ actionlist.addItem(\静静地\
34
河南理工大学本科生毕业设计(论文)说明书
actionlist.setSelectedIndex(0); loginButton.setEnabled(true); logoffButton.setEnabled(false); loginItem.addActionListener(this); logoffItem.addActionListener(this); exitItem.addActionListener(this); userItem.addActionListener(this); connectItem.addActionListener(this); helpItem.addActionListener(this); loginButton.addActionListener(this); logoffButton.addActionListener(this); userButton.addActionListener(this); connectButton.addActionListener(this); exitButton.addActionListener(this); combobox=new JComboBox(); combobox.insertItemAt(\所有人\ combobox.setSelectedIndex(0); messageShow=new JTextArea(); messageShow.setEditable(false); messageScrollPane=new
JScrollPane(messageShow,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
messageScrollPane.setPreferredSize(new Dimension(400,400)); messageScrollPane.revalidate(); clientMessage=new JTextField(23); clientMessage.setEnabled(false); clientMessageButton=new JButton(); clientMessageButton.setText(\发送\ clientMessage.addActionListener(this);
clientMessageButton.addActionListener(this); sendToLabel=new JLabel(\发送至:\
express=new JLabel(\ 表情: \ messageLabel=new JLabel(\发送消息:\ downPanel=new JPanel();
gridBag=new GridBagLayout(); downPanel.setLayout(gridBag);
gridBagCon=new GridBagConstraints(); gridBagCon.gridx=0;
35
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Java聊天室毕业论文(8)在线全文阅读。
相关推荐: