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

📄 ccsinterface.java

📁 基于java的图ou形化的聊天器
💻 JAVA
字号:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

/**
 * 客户端主入口 及其界面程序
 * @author ij
 *
 */
public class CCSInterface {

	JFrame jf;
	static JTextArea jtavision;
	JTextArea jtaopt;
	JButton jb;
	JScrollPane jsp;
	JScrollPane jsp1;
	JPanel jpall = new JPanel();
	CardLayout cl = new CardLayout();
	JPanel firjp;
	JPanel secjp;
	JLabel firjl = new JLabel("服务器IP地址:");
	JLabel firjl1 = new JLabel("服务器端口:");
	JLabel firjl2 = new JLabel("昵称:");
	JTextField firjta = new JTextField();
	JTextField firjta1 = new JTextField();
	JTextField firjta2 = new JTextField();
	JLabel jl;
	static JList jlist = new JList();
	JPanel jp1 = new JPanel();
	
	ChatClientSystem ccs = new ChatClientSystem();
	
	// 操作字符串 isnetadds  初始化信息
	// 操作字符串 ismessage  都发送信息
	// 操作字符串 ptop       点对点发送信息
	// 操作字符串 sendname   所用用户的昵称信息
	// 操作字符串 nameerr    昵称错误
	String current = "ismessage";

	String content;
	static String cliname = "lulu";
	
	static ChatMessage receivecm = new ChatMessage();

	byte[] serverip = new byte[4];

	/**
	 * 客户端界面
	 */
	public void runInterface() {
		jf = new JFrame();
		jf.setSize(400, 400);

		jtaopt = new JTextArea(4, 20);
		jtavision = new JTextArea(5, 20);

		//按钮及其监听
		jb = new JButton("发送");
		jb.addActionListener(new ButtonAction());
		JButton jbfir = new JButton("确定");
		jbfir.addActionListener(new ButtonAction());
		jp1.add(jbfir);
		jp1.add(jb);	
		jp1.setLayout(cl);

		jsp = new JScrollPane(jtavision);
		jsp1 = new JScrollPane(jtaopt);
		// jp.setSize(30, 100);

		GridLayout gl = new GridLayout(10, 1);

		//中间翻页界面
		firjp = new JPanel();		
		firjp.add(firjl);
		firjp.add(firjta);
		firjp.add(firjl1);
		firjp.add(firjta1);
		firjp.add(firjl2);
		firjp.add(firjta2);
		firjp.setLayout(gl);
		
		
		jpall.add(firjp);
		jpall.add(jsp);
		jpall.setLayout(cl);

		jl = new JLabel();
		
		
		jlist.setFixedCellWidth(100);
		
		//加到JFRAME中
		jf.getContentPane().add(jl,BorderLayout.NORTH);
		jf.getContentPane().add(jsp1, BorderLayout.SOUTH);
		jf.getContentPane().add(jpall, BorderLayout.CENTER);
		jf.getContentPane().add(jlist, BorderLayout.WEST);
		jf.getContentPane().add(jp1, BorderLayout.EAST);
		jf.setVisible(true);

		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
	}

	/**
	 * 内部类 实现接口ActionListener
	 * 响应监听 进行取信息判断运行
	 * @author ij
	 *
	 */
	class ButtonAction implements ActionListener {

		@Override
		public void actionPerformed(ActionEvent e) {
			
			System.out.println("***************");
			//当响应“确定”时,取数据处理初始化客户端
			//当响应“发送”时,取数据处理发送给服务器端
			if (e.getActionCommand().equals("确定")) {
				String ip = firjta.getText();
				String port = firjta1.getText();
				cliname = firjta2.getText();
				
				//检查ip
				if(!CSUtil.checkip(ip)){
					firjl.setText("输入地址格式不正确,请重新输入");
					return;
				}
				//检查port
				if(!CSUtil.checkport(port)){
					firjl1.setText("输入端口号格式不正确,请重新输入");
					return;
				}
				
				
				int portint = Integer.parseInt(port);
				String[] arrayip = ip.split("[.]");
				byte[] byteip = new byte[4];
				for (int i = 0; i < 4; i++) {
					byteip[i] = (byte)(Integer.parseInt(arrayip[i]));

					serverip[i] = byteip[i];
				}
				//翻动Panel到下一个card
				cl.next(jpall);
				cl.next(jp1);
				
				jl.setText("我的昵称:"+cliname);

				//客户端初始化
				ccs.initCCS(serverip,portint);
				try {
					ccs.send("isnetadds", cliname, InetAddress.getLocalHost()
							.getAddress(), "a");
				} catch (UnknownHostException e1) {
					e1.printStackTrace();
				}

			}
			else if(e.getActionCommand().equals("发送")){
				String name = (String) jlist.getSelectedValue();
				//判断是点对点发送 还是全发
				if (name == null) {
					ccs.send("ismessage", cliname, serverip, jtaopt.getText());
				}else if(name.equals("发送给聊天室")){
					ccs.send("ismessage", cliname, serverip, jtaopt.getText());
				} else {
					ccs.send("ptop", name, serverip, jtaopt.getText());
				}
				jtaopt.setText("");
			}
		}

	}

	public static void main(String[] args) {
		CCSInterface ccsi = new CCSInterface();
		ccsi.runInterface();
	}
}

⌨️ 快捷键说明

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