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

📄 log.java

📁 Java编写即时聊天工具, 拥有注册登陆群聊私聊等功能, 程序包含完整的Document和测试运行环境
💻 JAVA
字号:
package chat;

import java.net.*; 
import java.io.*;
import java.util.Hashtable;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Log extends JFrame implements ActionListener{
	private static JTextField textFieldl_serviceip;//服务器ip
	private static JTextField textFieldl_ID;//登录帐号
	private static TextField textFieldl_code;//登录密码
	private static JTextArea  textArea_l;//显示消息
	public Socket socket_l;//声明发送和接收数据的套接字
	private static String s_l;//要发送的信息
	private static DataInputStream inputstream_l;
	private static DataOutputStream outputstream_l;
	private static Hashtable listTable;//存放在线聊天者ID和名称的散列表
	
	public Log()throws IOException{
		super("飞腾");
		setSize(300,300);
		setBackground(Color.LIGHT_GRAY);
		Container contentPane=getContentPane();
		contentPane.setLayout(new GridLayout(5,1));
		
		JPanel panel1=new JPanel();
		panel1.setLayout(new GridLayout(1,2));		
		JLabel label1=new JLabel("             服务器IP:");
		panel1.add(label1);		
		textFieldl_serviceip=new JTextField(20);
		panel1.add(textFieldl_serviceip);
		
		JPanel panel2=new JPanel();
		panel2.setLayout(new GridLayout(1,2));		
		JLabel label2=new JLabel("             登录号码:");
		panel2.add(label2);		
		textFieldl_ID=new JTextField(20);
		panel2.add(textFieldl_ID);
		
		JPanel panel3=new JPanel();
		panel3.setLayout(new GridLayout(1,2));		
		JLabel label3=new JLabel("             登录密码:");
		panel3.add(label3);		
		textFieldl_code=new TextField(30);
		textFieldl_code.setEchoChar('*');
		textFieldl_code.addActionListener(this);
		panel3.add(textFieldl_code);
		
		JPanel panel4=new JPanel();
		textArea_l=new JTextArea(2,20);
		textArea_l.setBackground(Color.WHITE);
		textArea_l.setEditable(false);
		textArea_l.setLineWrap(true);
		JScrollPane scrolledText=new JScrollPane(textArea_l);
		panel4.add(scrolledText);
			
		
		
		JPanel panel5=new JPanel();
		panel5.setLayout(new GridLayout(1,2));
		JButton log_button=new JButton("登录");
		log_button.addActionListener(this);
		panel5.add(log_button);
		JButton cancel_lbutton=new JButton("取消");
		cancel_lbutton.addActionListener(this);
		panel5.add(cancel_lbutton);
		
		contentPane.add(panel1);
		contentPane.add(panel2);
		contentPane.add(panel3);
		contentPane.add(panel4);
		contentPane.add(panel5);
		
		listTable=new Hashtable();
		
		
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
	    Dimension frameSize = this.getSize();
	    if (frameSize.height > screenSize.height) {
	      frameSize.height = screenSize.height;
	    }
	    if (frameSize.width > screenSize.width) {
	      frameSize.width = screenSize.width;
	    }
	    this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
	}
	
	public void actionPerformed(ActionEvent e)
	{
		String actionCommand=e.getActionCommand();
		
		try{
			if(actionCommand.equals("登录")||e.getSource()==textFieldl_code){
				socket_l=new Socket(textFieldl_serviceip.getText(),5000);
				if(socket_l!=null){
					outputstream_l=new DataOutputStream(socket_l.getOutputStream());
					inputstream_l=new DataInputStream(socket_l.getInputStream());
					s_l="登录:"+textFieldl_ID.getText()+"!"+textFieldl_code.getText();					
					try{						
						outputstream_l.writeUTF(s_l);
					}
					catch(IOException exc){
	               		exc.printStackTrace() ;
	            	}
					String message=inputstream_l.readUTF();
					textArea_l.append("\n"+message);
					if(message.startsWith("登录成功")){
						String temp_name=message.substring(message.indexOf(":")+1);
						listTable.put(textFieldl_ID.getText(),temp_name+"("+textFieldl_ID.getText()+")");
						ChatFrame cf=new ChatFrame(socket_l,textFieldl_ID.getText(),temp_name,listTable);
						cf.setVisible(true);
						this.setVisible(false);
					}
				}
				else throw new IOException("连接服务器出现异常,请确认服务器正在运行!");
			}
			else System.exit(0);
		}
		catch(IOException exc){
			String m=exc.getMessage();
			textArea_l.append(m);
		}

	}
}

⌨️ 快捷键说明

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