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

📄 chat.java

📁 一个用java写的一种聊天工具
💻 JAVA
字号:
package Form;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Calendar;
import business.*;
import javax.swing.*;

public class Chat extends ChatBase implements ActionListener{

	/**
	 * Launch the application
	 * @param args
	 */
	// 响应关闭按钮的内部类
	private JMenuBar br = new JMenuBar();
    private JMenu mu = new JMenu("传送文件(&F)");
	private class WindowCloser extends WindowAdapter 
	{
		public void windowClosing(WindowEvent we)
		{
			parent.closeChat(friendNum+"");
			Chat.this.Save();
			Chat.this.dispose();
		}
	}
	private void registerMune()
	{
		mu.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent e) {
				FileDialog fd = new FileDialog(Chat.this,"打开对话框",FileDialog.LOAD);
        		fd.setVisible(true);
        		String rightNow = Calendar.getInstance().getTime().toLocaleString();
        		if(fd.getFile()==null)
        		{
        			return;
        		}
        		File f = new File(fd.getDirectory()+"\\"+fd.getFile());
        		if(f.length()>102400)
        		{
        			input.append(rightNow+"  文件太大,不能传送!\n");
        			return;
        		}
        		char[] content = new char[102400];
        		String str =null;
        		try {
					FileReader fr = new FileReader(f);
					int len = fr.read(content);
					str = new String(content,0,len);
				} catch (FileNotFoundException e1) {
				} catch (IOException e2) {
				} 
				parent.sendMessage("F"+friendNum+" "+"N"+fd.getFile()+"!"+str);
				input.append(" "+userName+"   "+rightNow+"\n   "+"向"+friendNum+"发送文件:"+fd.getFile()+"\n");
			}
    		
    	});
	}
	
	public Chat(int userNum,int friendNum,Client parent) {
		super();
		this.userNum = userNum;
		this.friendNum = friendNum;
		this.userName = User.getName(userNum);
		this.parent = parent;
		String friendName = User.getName(friendNum);
		this.setTitle("你正在与"+friendName+"对话");
		setBounds(100, 100, 600, 375);
		setResizable(false);
		addWindowListener(new WindowCloser());
		setup();
		br.add(mu);
		mu.setMnemonic('F');
		this.setJMenuBar(br);
		registerMune();
	}
	
	public void setMessage(String string) {
		// TODO 自动生成方法存根
		input.append(string+"\n");
		input.setCaretPosition(input.getText().length());//滾動到底端

	}
	
	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成方法存根
		if(e.getActionCommand().equals("发送"))
		{
			parent.sendMessage("M"+friendNum+" "+output.getText());
			String rightNow = Calendar.getInstance().getTime().toLocaleString();
			input.append(" "+userName+"   "+rightNow+"\n   "+output.getText()+"\n");
			output.setText("");
		}
		else if(e.getActionCommand().equals("取消"))
		{
			parent.closeChat(friendNum+"");
			Chat.this.Save();
			Chat.this.dispose();
		}
		else
		{
			setResizable(true);
			java.awt.Rectangle rv = Chat.this.getBounds();
			int width = rv.width;
			if(openRecrod)
			{
				width += 200;
				openRecrod=false;
				panel.setVisible(true);
			}
			else
			{
				panel.setVisible(false);
				width -=200;
				openRecrod=true;
			}
			Chat.this.setBounds(rv.x, rv.y, width, rv.height);
			setResizable(false);
		}
	}
}

⌨️ 快捷键说明

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