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

📄 chatui.java

📁 是一个JAVA通讯程序.功能不多
💻 JAVA
字号:
package clientele;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.UIManager;


public class ChatUI extends JFrame
{
	private static final long serialVersionUID = 1453456465L;
	/**
	 * 文件
	 */
	File file;
	/**
	 * 文本域:存放聊天记录
	 */
	JTextArea jTextArea1 = null;

	/**
	 * 文本域:聊天输入
	 */
	JTextArea jTextArea2 = null;

	/**
	 * 关闭按钮
	 */
	JButton jButton1 = null;

	/**
	 * 发送按钮
	 */
	JButton jButton2 = null;
	/**
	 * 窗体
	 */
	JFrame jFrame = null;// 窗体

	/**
	 * 添加按钮等
	 */
	JPanel jPanel = null;

	/**
	 * 聊天发送者号码
	 */
	int souceid = 0;// 聊天发送者

	/**
	 * 聊天接收者号码
	 */
	int destid = 0;// 聊天目标

	/**
	 * 添加文本区
	 */
	JScrollPane jScrollPane1 = null;

	/**
	 * 添加文本区
	 */
	JScrollPane jScrollPane2 = null;

	/**
	 * 构造函数
	 */
	public ChatUI(int souceid, int destid)
	{
		this.souceid = souceid;
		this.destid = destid;
	}

	/**
	 * 此方法初始化
	 */
	public JFrame getJFrame()
	{
		if (jFrame == null)
		{
			jFrame = new JFrame();
			jFrame.setBackground(SystemColor.inactiveCaption);
			jFrame.setSize(460, 190);
			jFrame.setContentPane(getJPanel());
			Toolkit toolkit = jFrame.getToolkit();
			Dimension screen = toolkit.getScreenSize();
			jFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(
					getClass().getResource("/picture/client.jpg")));
			jFrame.setBounds(screen.width / 2 - 460 / 2,
					screen.height / 2 - 350 / 2, 379, 351);// //让窗体在屏幕正中央显示
			jFrame.setVisible(true);
			jFrame.setResizable(false);
			jFrame.getRootPane().setDefaultButton(jButton2);
			jFrame.addWindowListener(new WindowAdapter() {
				public void windowActivated(WindowEvent e)
				{
					String name = ".//" + String.valueOf(souceid) + ".txt";
					PrintWriter   outputStream   =   null; 
					try   
					 { 
					   outputStream = new PrintWriter(new FileWriter(name)); 
					   outputStream.println(jTextArea1.getText()); 
	                   outputStream.close(); 
					} 
					   catch   (IOException   e1)  
					{ 
					  e1.printStackTrace(); 
					} 
				}
			});
		}
		return jFrame;
	}

	/**
	 * 此方法初始化jPanel
	 */
	public JPanel getJPanel()
	{
		if (jPanel == null)
		{
			jPanel = new JPanel();
			jPanel.setBackground(new Color(153, 153, 255));
			jPanel.setLayout(null);
		}
		if (jTextArea1 == null)
		{
			jTextArea1 = new JTextArea();
			jTextArea1.setTabSize(8);
		}
		if (jTextArea2 == null)
		{
			jTextArea2 = new JTextArea();
			jTextArea2.setFocusCycleRoot(true);
		}
		if (jButton1 == null)
		{
			jButton1 = new JButton();
			jButton1.setBackground(UIManager.getColor("Button.shadow"));
			jButton1.setFont(new Font("", Font.PLAIN, 14));
		}
		if (jButton2 == null)
		{
			jButton2 = new JButton();
		}
		if (jScrollPane1 == null)
		{
			jScrollPane1 = new JScrollPane();
		}
		if (jScrollPane2 == null)
		{
			jScrollPane2 = new JScrollPane();
		}
		jTextArea1.setBackground(Color.white);
		jTextArea1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 15));
		jTextArea1.setForeground(Color.black);
		jTextArea1.setBorder(BorderFactory.createLineBorder(Color.green));
		jTextArea1.setLineWrap(true);
		jTextArea1.setBounds(6, 9, 100, 200);
		jTextArea1.setEditable(false);
		jScrollPane1.setBounds(new Rectangle(6, 9, 360, 180));
		jScrollPane1.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
		jScrollPane1.getViewport().add(jTextArea1);// 聊天记录
		jTextArea2.setFont(new Font("宋体", Font.PLAIN, 15));
		jTextArea2.setBorder(BorderFactory.createLineBorder(Color.black));
		jTextArea2.setLineWrap(true);
		jTextArea2.setBounds(new Rectangle(7, 207, 200, 61));
		jScrollPane2.setBounds(6, 207, 360, 60);
		jScrollPane2.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
		jScrollPane2.getViewport().add(jTextArea2);
		jButton1.setBounds(new Rectangle(46, 278, 79, 24));
		jButton1.setForeground(SystemColor.menuText);
		jButton1.setText("关闭");
		jButton2.setBounds(new Rectangle(249, 278, 90, 24));
		jButton2.setFont(new Font("", Font.PLAIN, 14));
		jButton2.setForeground(SystemColor.menuText);
		jButton2.setText("发送(S)");
		jButton2.setMnemonic('S');
		
		/**
		 * 发送按钮行为事件监听
		 */
		jButton2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				if (e.getSource() == jButton2)
				{
					String msg = Client.getTime() + "  用户"
							+ String.valueOf(souceid) + "说:\n"
							+ jTextArea2.getText() + "\n";				
					jTextArea1.append(msg);// 把信息追加
					jTextArea1.selectAll();
					jTextArea2.setText("");// 清空
					Client.client.sendChatMsg(msg, souceid, destid);
					// 执行Client的sendChatMsg()方法
				}
				String name = ".//" + String.valueOf(souceid) + ".txt";
				PrintWriter   outputStream   =   null; 
				try   
				 { 
				   outputStream   =   new   PrintWriter(new   FileWriter(name)); 
				   outputStream.println(jTextArea1.getText()); 
				   outputStream.flush();
                   outputStream.close(); 
				} 
				   catch   (IOException   e1)  
				{ 
				  e1.printStackTrace(); 
				} 
			}
		});
		/**
		 * 保存聊天记录按钮行为事件监听
		 */
		jButton1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e)
			{
				if (e.getSource() == jButton1)
					jFrame.dispose();// 隐藏窗体		
			}
		});
		jPanel.setEnabled(true);
		jPanel.add(jButton1);
		jPanel.add(jButton2);
		jPanel.add(jScrollPane1);
		jPanel.add(jScrollPane2);
		return jPanel;
	}
}

⌨️ 快捷键说明

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