用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...