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

📄 clientframe.java

📁 java局域网聊天室
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package chatnew;

import java.awt.BorderLayout;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.*;
import java.io.*;

/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author 乔聪
 * @version 1.0
 */
public class ClientFrame extends JFrame {


     Client client=null;
     FileSender fileSender=null;
     FileReceiver fileReceiver=null;
     String fileTransFlag=null;//文件发送接收标记



    BorderLayout borderLayout1 = new BorderLayout();
    JPanel jPanel1 = new JPanel();
    JPanel jPanel2 = new JPanel();
    JPanel jPanel3 = new JPanel();
    JPanel jPanel4 = new JPanel();
    JPanel jPanel5 = new JPanel();
    JLabel jLabel1 = new JLabel();
    JTextField jip = new JTextField();
    JLabel jLabel2 = new JLabel();
    JTextField jport = new JTextField();
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JLabel jLabel3 = new JLabel();
    List list1 = new List();
    BorderLayout borderLayout2 = new BorderLayout();
    JTextField jnickname = new JTextField();
    JButton jButton3 = new JButton();
    JTextField jsend = new JTextField();
    JButton jButton4 = new JButton();
    BorderLayout borderLayout3 = new BorderLayout();
    JPanel jPanel6 = new JPanel();
    JButton jButton5 = new JButton();
    JButton jButton6 = new JButton();
    GridLayout gridLayout1 = new GridLayout();
    List list2 = new List();
    BorderLayout borderLayout4 = new BorderLayout();
    JButton jButton7 = new JButton();
    JButton jButton8 = new JButton();
    JCheckBox jCheckBox1 = new JCheckBox();
    JPanel jPanel7 = new JPanel();
    JTextField jdir = new JTextField();
    GridLayout gridLayout2 = new GridLayout();
    JButton jButton9 = new JButton();
    JButton jButton10 = new JButton();
    JLabel jLabel4 = new JLabel();
    JButton jButton11 = new JButton();
    JFileChooser fileChooser=new JFileChooser();
    public ClientFrame() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);
        jButton1.setMnemonic('D');
        jButton1.addActionListener(new ClientFrame_jButton1_actionAdapter(this));
        jButton2.setMnemonic('E');
        jButton2.addActionListener(new ClientFrame_jButton2_actionAdapter(this));
        jButton6.setMnemonic('S');
        jButton6.addActionListener(new ClientFrame_jButton6_actionAdapter(this));
        jButton5.setMnemonic('V');
        jButton5.addActionListener(new ClientFrame_jButton5_actionAdapter(this));
        jButton4.setMnemonic('F');
        jButton4.addActionListener(new ClientFrame_jButton4_actionAdapter(this));
        jButton3.setMnemonic('N');
        jButton3.addActionListener(new ClientFrame_jButton3_actionAdapter(this));
        jsend.addActionListener(new ClientFrame_jTextField4_actionAdapter(this));
        jButton7.setText("jButton7");
        jButton8.setMnemonic('C');
        jButton8.setText("清空(C)");
        jButton8.addActionListener(new ClientFrame_jButton8_actionAdapter(this));
        jCheckBox1.setSelected(true);
        jCheckBox1.setText("对所有人");
        jdir.setText("C:\\");
        jPanel7.setLayout(gridLayout2);
        gridLayout2.setColumns(1);
        gridLayout2.setRows(5);
        jButton9.setMnemonic('T');
        jButton9.setText("发送(T)");
        jButton9.addActionListener(new ClientFrame_jButton9_actionAdapter(this));
        jButton10.setMnemonic('K');
        jButton10.setText("开始(K)");
        jButton10.addActionListener(new ClientFrame_jButton10_actionAdapter(this));
        jLabel4.setText("传输文件:");
        jButton11.setMnemonic('R');
        jButton11.setText("接收(R)");
        jButton11.addActionListener(new ClientFrame_jButton11_actionAdapter(this));
        this.getContentPane().add(jPanel1, java.awt.BorderLayout.NORTH);
        jip.setText("192.168.0.50");
        jip.setColumns(15);
        jLabel2.setText("端口:");
        jport.setText("9999");
        jport.setColumns(5);
        jButton1.setText("登陆(D)");
        jButton2.setText("退出(E)");
        jLabel3.setText("在线用户列表:");
        jPanel2.setLayout(borderLayout2);
        jnickname.setText("小松鼠");
        jnickname.setColumns(5);
        jButton3.setText("修改昵称(N)");
        jsend.setText("大家好");
        jsend.setColumns(40);
        jButton4.setText("发送(F)");
        jPanel4.setLayout(borderLayout3);
        jButton5.setText("查看(V)");
        jButton6.setText("保存(S)");
        jPanel6.setLayout(gridLayout1);
        gridLayout1.setColumns(1);
        gridLayout1.setRows(3);
        jPanel5.setLayout(borderLayout4);
        jPanel1.add(jLabel1);
        jPanel1.add(jip);
        jPanel1.add(jLabel2);
        jPanel1.add(jport);
        jPanel1.add(jButton1);
        jPanel1.add(jButton2);
        jLabel1.setText("服务器IP地址:");
        this.getContentPane().add(jPanel2, java.awt.BorderLayout.WEST);
        jPanel2.add(list1, java.awt.BorderLayout.CENTER);
        this.getContentPane().add(jPanel3, java.awt.BorderLayout.SOUTH);
        jPanel3.add(jnickname);
        jPanel3.add(jButton3);
        jPanel3.add(jsend);
        jPanel3.add(jButton4);
        this.getContentPane().add(jPanel4, java.awt.BorderLayout.EAST);
        jPanel6.add(jButton6, null);
        jPanel6.add(jButton8);
        jPanel6.add(jButton5, null);
        this.getContentPane().add(jPanel5, java.awt.BorderLayout.CENTER);
        jPanel5.add(list2, java.awt.BorderLayout.CENTER);
        jPanel2.add(jLabel3, java.awt.BorderLayout.NORTH);
        jPanel2.add(jCheckBox1, java.awt.BorderLayout.SOUTH);
        jPanel4.add(jPanel6, java.awt.BorderLayout.NORTH);
        jPanel4.add(jPanel7, java.awt.BorderLayout.SOUTH);
        jPanel7.add(jLabel4);
        jPanel7.add(jdir);
        jPanel7.add(jButton9);
        jPanel7.add(jButton11);
        jPanel7.add(jButton10);
        this.setTitle("聊天室客户端");
        this.setSize(800,600);
        this.setLocation(100,100);
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        ClientFrame clientframe = new ClientFrame();
    }

    public void jButton1_actionPerformed(ActionEvent e) {
        try {
            client = new Client(jip.getText(),
                                       Integer.parseInt(jport.getText()), list1,
                                       list2);
        } catch (NumberFormatException ex) {
            JOptionPane.showMessageDialog(this,"端口号应该输入数字!","提示",JOptionPane.ERROR_MESSAGE);
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(this,"服务器不存在或者没有启动!","提示",JOptionPane.ERROR_MESSAGE);
            ex.printStackTrace();
        }
        if(jnickname.getText().length()>0){
            this.client.send("NICKNAME:"+jnickname.getText());
        }
     }

    public void jTextField4_actionPerformed(ActionEvent e) {
        if(jsend.getText().length()>0){
            //判断是给所有人发还是只给指定的客户端发
            if(jCheckBox1.isSelected()){
                this.client.send(jsend.getText());
            }else{
                if(list1.getSelectedItem()==null){
                    JOptionPane.showMessageDialog(this,"请选择要发送信息的用户,或者选中“对所有人”按钮!","提示",JOptionPane.ERROR_MESSAGE);
                }else{
                    this.client.send("SPECIAL:"+list1.getSelectedItem()+"$SPECIAL$"+jsend.getText());
                    this.list2.add("你 悄悄对 "+list1.getSelectedItem()+" 说:"+jsend.getText());
                    list2.select(list2.getItemCount()-1);
                }
            }
        }
    }

    public void jButton4_actionPerformed(ActionEvent e) {
        if(jsend.getText().length()>0){
                //判断是给所有人发还是只给指定的客户端发
                if(jCheckBox1.isSelected()){
                    this.client.send(jsend.getText());
                }else{
                    if(list1.getSelectedItem()==null){
                        JOptionPane.showMessageDialog(this,"请选择要发送信息的用户,或者选中“对所有人”按钮!","提示",JOptionPane.ERROR_MESSAGE);
                    }else{
                        this.client.send("SPECIAL:"+list1.getSelectedItem()+"$SPECIAL$"+jsend.getText());
                        this.list2.add("你 悄悄对 "+list1.getSelectedItem()+" 说:"+jsend.getText());
                        list2.select(list2.getItemCount()-1);
                    }
                }
        }
    }

    public void jButton2_actionPerformed(ActionEvent e) {
        this.client.destroy();
        this.client=null;
    }

    public void jButton8_actionPerformed(ActionEvent e) {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -