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

📄 chatframe.java

📁 一个基于java的局域网聊天程序
💻 JAVA
字号:
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;



public class ChatFrame extends JFrame {
	private JTextField textField;
	private JTextArea textArea;
	private String account;
	private String receiver;
	private PrintWriter pw=null;
	private BufferedReader br=null;
	/**
	 * @param args
	 */

	public ChatFrame(String name,String ac,PrintWriter p,BufferedReader b) {
		super("与"+name+"交谈中...");
		pack();
		
		this.receiver=name;//得到接受者
		this.account=ac;//账户名
		this.pw=p;
		this.br=b;
		
		this.setSize(460, 400);
		getContentPane().setLayout(null);
		getContentPane().setBackground(new Color(255, 182, 193));
		//setTitle("聊天中,与--");

		final JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);

		final JMenu menu = new JMenu();
		menu.setText("工具");
		menuBar.add(menu);

		final JMenuItem newItemMenuItem = new JMenuItem();
		newItemMenuItem.setText("保存聊天记录");
		menu.add(newItemMenuItem);
		
		newItemMenuItem.addActionListener(new ToStore());

		final JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBorder(new LineBorder(Color.black, 1, false));
		scrollPane.setBounds(23, 10, 377, 208);
		getContentPane().add(scrollPane);

		textArea = new JTextArea();
		textArea.setEditable(false);
		scrollPane.setViewportView(textArea);

		final JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(23, 240, 291, 33);
		getContentPane().add(scrollPane_1);

		textField = new JTextField();
		textField.setText(null);
		scrollPane_1.setViewportView(textField);


		final JButton button = new JButton();
		button.addActionListener(new SendMessage());
		button.setText("发送");
		button.setBounds(324, 240, 76, 28);
		getContentPane().add(button);
		
		this.setLocation(300, 300);
		this.setResizable(false);
		this.setVisible(true);
	}
	public String getAccount() {
		return this.account;
	}
	public String getReceiver() {
		return this.receiver;
	}
	public PrintWriter getpw() {
		return this.pw;
	}
	public BufferedReader getbr() {
		return this.br;
	}
	
	class ToStore implements ActionListener {
		public void actionPerformed(ActionEvent arg0) {
			String storeStr=textArea.getText().replace("\n", "\r\n");
			JFileChooser jfc=new JFileChooser();
			int result=jfc.showSaveDialog(null);//设置为save类型的框框
			//System.out.println(jfc.getSelectedFile());
			File file=jfc.getSelectedFile();
			try {
				BufferedWriter bw=new BufferedWriter(new FileWriter(file));
				bw.write(storeStr);
				bw.flush();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
	}
	
	class SendMessage implements ActionListener {//发送消息,未完成
		public void actionPerformed(ActionEvent e) {
			String sender=getAccount();//得到发送者,即本账户
			String des=getReceiver();//得到接受者
			String say=null;
			new Thread(new PrintRunnable(getbr(),textArea)).start();
			if((say=textField.getText())!= null) {
				//String say=textField.getText();
				textArea.append(sender+": "+say+"\n");
				String tosend=des+":"+sender+":"+say;
				//textArea.append(tosend+"\n");
				textField.setText(null);
				getpw().println(tosend);
				//System.out.println(talkStr);
			}
			
			
		}
		
	}
	
	/*public static void main(String[] args) {
		new ChatFrame();

	}*/

}

⌨️ 快捷键说明

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