String message=fromServerMessage.Message; jTextArea1.append(message);
if(fromServerMessage.Command.equals(\ {
vectorUserList.addElement(newUser); jList1.setListData(vectorUserList);
jComboBoxUserlist.addItem(fromServerMessage.UserName); } else {
vectorUserList.removeElement(newUser); jList1.setListData(vectorUserList); jComboBoxUserlist.removeItem(newUser); } }
public void SystemMessage() //接受系统信息 {
JOptionPane.showMessageDialog(null,fromServerMessage.Message,\系统消息\ }
public void Message() //接受聊天信息 {
jTextArea1.append(fromServerMessage.Message); }
public void FileMessage() //文件传输处理 { try {
if(fromServerMessage.Command.equals(\ { int
State=JOptionPane.showOptionDialog(null,fromServerMessage.UserName+\请求发送一个文件给你,可以开始了吗?\提示\ if(State==JOptionPane.YES_OPTION) {
fromServerMessage.Command=\
streamToServer.writeObject(fromServerMessage); streamToServer.flush(); } else {
fromServerMessage.Command=\
streamToServer.writeObject(fromServerMessage); streamToServer.flush(); } }
else if(fromServerMessage.Command.equals(\
第 35 页 共 69 页
35
{
JOptionPane.showMessageDialog(null,\回复消息:对方已准备好,可以开始传送!\
JFileChooser chooser=new JFileChooser(); int State=chooser.showOpenDialog(null); if(State==JFileChooser.APPROVE_OPTION) {
String FileName=chooser.getSelectedFile().getName(); String FileDir=chooser.getCurrentDirectory().toString(); File file = new File(FileDir,FileName);
FileInputStream InputFile = new FileInputStream(file); fromServerMessage.FileData= new byte[(int)file.length()]; InputFile.read(fromServerMessage.FileData); InputFile.close();
fromServerMessage.Command=\ fromServerMessage.FileName=FileName;
streamToServer.writeObject(fromServerMessage); streamToServer.flush();
jButtonTran.setEnabled(false);
JOptionPane.showMessageDialog(null,\回复消息:请稍等!文件传送中 . . .\ }
if(State==JFileChooser.CANCEL_OPTION){} }
else if(fromServerMessage.Command.equals(\ {
JOptionPane.showMessageDialog(null,\回复消息:对不起!对方尚未准备好,请重新申请!\ }
else if(fromServerMessage.Command.equals(\ {;
JFileChooser chooser=new JFileChooser(); int State=chooser.showSaveDialog(null); if(State==JFileChooser.APPROVE_OPTION) {
String suffix; StringTokenizer st = new StringTokenizer(fromServerMessage.FileName,\ suffix=st.nextToken(); suffix=st.nextToken(); String
FileName=chooser.getSelectedFile().getName()+\
String FileDir=chooser.getCurrentDirectory().toString(); File file = new File(FileDir,FileName);
FileOutputStream OutputFile = new FileOutputStream(file); OutputFile.write(fromServerMessage.FileData); OutputFile.close();
fromServerMessage.Command=\
streamToServer.writeObject(fromServerMessage);
第 36 页 共 69 页
36
streamToServer.flush(); }
if(State==JFileChooser.CANCEL_OPTION){} }
else if(fromServerMessage.Command.equals(\ {
JOptionPane.showMessageDialog(null,\回复消息:拷贝成功!谢谢!\
jButtonTran.setEnabled(true); } else
{
JOptionPane.showMessageDialog(null,\回复消息:对不起!拷贝不成功!请重新再试!\
jButtonTran.setEnabled(true); } }
catch(IOException e){} }
class LoginActionListener implements ActionListener //注册申请事件 {
public void actionPerformed(ActionEvent evt) {
frameEnter.setVisible(false); new register(); } }
class EnterActionListener implements ActionListener //登陆申请事件
{
public void actionPerformed(ActionEvent evt) {
Object obj = evt.getSource();
toServerMessage.UserName=String.valueOf(ComboBoxUserName.getSelectedItem());
toServerMessage.UserPassword=String.valueOf(textUserPassword.getPassword()); int lengthName=toServerMessage.UserName.length();
int lengthPassword=toServerMessage.UserPassword.length(); try {
Detect(lengthName,lengthPassword); toServerMessage.Command=\
streamToServer.writeObject((User)toServerMessage); streamToServer.flush(); }
catch (IllegalLengthException e1) {
JOptionPane.showMessageDialog(null,\错误:用户名或密码
第 37 页 共 69 页
37
长度不合法!\
ComboBoxUserName.setSelectedItem(\ textUserPassword.setText(\ }
catch(IOException e1)
{System.out.println(\ } }
class ExitActionListener implements ActionListener //注销事件 {
public void actionPerformed(ActionEvent evt) { try {
streamToServer.close(); streamFromServer.close(); fromServer.close(); toServer.close(); System.exit(0); }
catch(IOException e){} } }
class register extends JFrame implements ActionListener //注册向导窗口类
{
private JButton buttonNext1,buttonExit1;
private JButton buttonPrevious2,buttonNext2,buttonExit2; private JButton buttonPrevious3,buttonSubmit,buttonExit3; private JLabel label1,label2,label3;
private JPasswordField PasswordField1,PasswordField2; private JTextField textUserName,textEmail,textAge; private JComboBox comboBoxHeadPhoto;
private Panel register1,register2,register3; private CardLayout cardLayout;
register() {
initComponents(); //调用组件初始化函数 }
private void initComponents() //组件初始化 {
frameLogin = new Frame (\注册向导\ cardLayout = new CardLayout(); frameLogin.setLayout(cardLayout);
register1 = new Panel(); register2 = new Panel(); register3 = new Panel();
第 38 页 共 69 页
38
frameLogin.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt)
{
exitForm(evt); } });
register1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
buttonExit1=new JButton(\取 消\
buttonExit1.setForeground(new Color(255, 255, 255)); buttonExit1.setFont(new Font(\幼圆\ buttonExit1.setBackground(new Color(255, 204, 0)); buttonExit1.addActionListener(this);
register1.add(buttonExit1, new org.netbeans.lib.awtextra.AbsoluteConstraints(280, 250, -1, -1));
buttonNext1=new JButton(\下一步\
buttonNext1.setForeground(new Color(255, 255, 255)); buttonNext1.setFont(new Font(\幼圆\
buttonNext1.setBackground(new Color(255, 204, 0)); buttonNext1.addActionListener(this);
register1.add(buttonNext1, new org.netbeans.lib.awtextra.AbsoluteConstraints(180, 250, -1, -1));
textUserName=new JTextField(10);
textUserName.setForeground(new java.awt.Color(51, 153, 255));
textUserName.setFont(new java.awt.Font(\幼圆\ textUserName.setBorder(null); textUserName.setOpaque(false); register1.add(textUserName, new org.netbeans.lib.awtextra.AbsoluteConstraints(132, 153, 193, 30));
label1=new JLabel(new ImageIcon(\ register1.add(label1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
label1.setForeground(new Color(51, 153, 255)); label1.setFont(new Font(\幼圆\ label1.setBorder(null); // register1.add(label1, new org.netbeans.lib.awtextra.AbsoluteConstraints(132, 153, 193, 30));
第 39 页 共 69 页
39