用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java在线聊天及文件传输系统5

2015-03-24 作者: java源代码大全举报

[java]代码库

package MyFrame;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
 
import FileTran.FileClient;
 
public class MyPane extends JPanel {
    // 默认服务器端口
    private final String P = "9527";
    // ////////////////////////////////
    private JTextField msgjt;
    private JComboBox ipjt;
    private JTextField portjt;
    private JButton clearjb;
    private JButton sendjb;
    private JButton exitjb;
    private JButton filejb;
    private JTextArea contendjt;
    private JScrollPane scrolljs;
    private Myframe mf;
    private int n = 0;
    private String fport = "9527";
 
    public MyPane(Myframe mf) {
        this.mf = mf;
        this.setBackground(Color.lightGray);
        // this.setBounds(0, 0, 600, 400);
        this.addContend();
    }
 
    private void addContend() {
        // TODO Auto-generated method stub
        this.setLayout(null);
        // 端口
        this.portjt = new JTextField();
        this.portjt.setBounds(520, 320, 70, 30);
        this.portjt.setForeground(Color.RED);
        this.portjt.setFont(new Font("宋体", Font.PLAIN, 25));
        this.portjt.setText("9527");
        this.add(this.portjt);
 
        // 输入框
        this.msgjt = new JTextField();
        this.msgjt.setBounds(10, 320, 250, 30);
        this.msgjt.setFont(new Font("宋体", Font.PLAIN, 20));
        this.msgjt.setForeground(Color.BLUE);
        this.add(this.msgjt);
 
        // 文件发送按钮
        this.filejb = new JButton("文件发送");
        this.filejb.setBounds(505, 200, 90, 30);
        this.add(this.filejb);
        this.filejb.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent e) {
                new FileClient(mf).start();
 
            }
        });
 
        // 发送按钮
        this.sendjb = new JButton("发送");
        this.sendjb.setBounds(270, 320, 60, 30);
        this.add(this.sendjb);
        this.sendjb.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                String msg = mf.getPane().getMsgjt().getText();
                String port = mf.getPane().getPortjt().getText();
                String nowip = (String) mf.getPane().getIpjt()
                        .getSelectedItem();
                if (msg.equals("")) {
                    JOptionPane.showMessageDialog(mf, "内容不能为空!");
                    // 目标端口是否改变
                    if (!(port.equals(fport))) {
                        JOptionPane.showMessageDialog(mf, "正在向服务器发送端口...");
                        new Client("客户端&端口改为:" + port, P, mf.getMyip());
                        fport = mf.getPane().getPortjt().getText();
 
                    }
                    // 获取目标电脑IP
                    else if (n == 0) {
                        String myip = null;
                        InetAddress myComputer = null;
                        try {
                            myComputer = InetAddress.getLocalHost(); // 取得主机位置对象
                            myip = myComputer.getHostAddress();
                            // this.getPane().getContendjt().setText("目标用户IP:"+this.ip);
                            // port=mf.getPane().getPortjt().getText();
                            JOptionPane
                                    .showMessageDialog(mf, "正在向服务器发送测试消息...");
                            new Client("客户端&端口:" + port + "   (测试 )", P, mf
                                    .getMyip());
                            fport = mf.getPane().getPortjt().getText();
                            n = 1;
                            return;
                        } catch (UnknownHostException e) {
                            myip = "暂时无法获取该用户IP";
                            // String port=mf.getPane().getPortjt().getText();
                            new Client(myip + "端口为 :" + port, port, mf
                                    .getMyip());
 
                            fport = mf.getPane().getPortjt().getText();
                        }
                        n = 1;
 
                    }
                    return;
                } else if (!nowip
                        .matches("([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]"
                                + "([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]"
                                + "([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])[.]"
                                + "([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])")) {
                    JOptionPane.showMessageDialog(mf, "IP不符合规范请确认....");
                } else {
                    new Client(mf);
                    if (!mf.getPane().getMsgjt().getText().equals("")) {
                        // System.out.println(mf.getPane().getContendjt().getText());
                        mf.getPane()
                                .getContendjt()
                                .setText("我说:  "+ msg+ "  ("+ new SimpleDateFormat("MM-dd HH:mm:ss").format(new Date())
                                                + ")\n"+ mf.getPane().getContendjt().getText());
                    }
                    fport = mf.getPane().getPortjt().getText();
 
                }
                mf.getPane().getMsgjt().setText("");
            }
        });
 
        // ip地址
        this.ipjt = new JComboBox();
        this.ipjt.setBounds(340, 320, 170, 30);
        this.ipjt.setEditable(true);
        this.ipjt.setFont(new Font("宋体", Font.PLAIN, 22));
        this.ipjt.setForeground(Color.RED);
        this.ipjt.addItem("127.0.0.1");
        this.ipjt.addItem(mf.getMyip());
 
        this.add(this.ipjt);
        // 清屏按钮
        this.clearjb = new JButton("清屏");
        this.clearjb.setBounds(510, 100, 60, 30);
        this.add(this.clearjb);
        this.clearjb.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                mf.getPane().getContendjt().setText("");
            }
        });
 
        // 退出按钮
        this.exitjb = new JButton("退出");
        this.exitjb.setBounds(510, 30, 60, 30);
        this.add(this.exitjb);
        this.exitjb.addActionListener(new ActionListener() {
 
            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub
                System.exit(0);
 
            }
        });
 
        // 内容栏
        this.contendjt = new JTextArea();
        this.contendjt.setFont(new Font("宋体", Font.PLAIN, 20));
        this.contendjt.setBorder(BorderFactory.createLineBorder(Color.BLACK));
        this.contendjt.setEditable(false);
        this.scrolljs = new JScrollPane(this.contendjt);
        this.scrolljs.setBounds(0, 0, 500, 300);
        this.add(this.scrolljs);
 
    }
 
    public JTextField getMsgjt() {
        return msgjt;
    }
 
    public void setMsgjt(JTextField msgjt) {
        this.msgjt = msgjt;
    }
 
    public JComboBox getIpjt() {
        return ipjt;
    }
 
    public void setIpjt(JComboBox ipjt) {
        this.ipjt = ipjt;
    }
 
    public JTextField getPortjt() {
        return portjt;
    }
 
    public void setPortjt(JTextField portjt) {
        this.portjt = portjt;
    }
 
    public JTextArea getContendjt() {
        return contendjt;
    }
 
    public void setContendjt(JTextArea contendjt) {
        this.contendjt = contendjt;
    }
 
}
//源代码片段来自云代码http://yuncode.net
            


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...