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

📄 userlistpanel.java

📁 模仿腾讯QQ的
💻 JAVA
字号:
package com.softfz.jn0708.chat.userlistpanel;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.BorderFactory;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.border.Border;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;

import com.softfz.jn0708.chat.ChatFrame;
import com.softfz.jn0708.srcpackage.*;
import com.softfz.jn0708.util.Tools;


/**
 * 用户列表 面板
 * @author admin
 *
 */
public class UserListPanel extends JPanel implements MouseListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1732488975803613321L;
	private JTree tree;
	private MyTreeModel model;	
	private ChatFrame chatframe = null;	
	private TCompany company = new TCompany();
	private String ToUser;
	/**
	 * 构造函数
	 * @param chatframe 传入主窗体对象 以便调用
	 * @param company 传入公司 建立公司树
	 */
	public UserListPanel(final ChatFrame chatframe,TCompany company){
		
		super();
		this.chatframe = chatframe;
		this.company = company;
		Tools.setFont(new Font("宋体",Font.PLAIN,13));		
		model = new MyTreeModel(company);	
		tree = new JTree(model);
//		tree.setBackground(new Color(233,241,249));
		tree.setCellRenderer(new MyTreeCellRenderer());
		tree.addMouseListener(this);
		//边框
		Border line = BorderFactory.createLineBorder(new Color(144,185,213));		
		this.setBackground(Color.WHITE);	
		this.setBorder(line);
		tree.setBackground(Color.WHITE);
		
//		tree.setPreferredSize(new Dimension(160,264));
//		tree.setMaximumSize(new Dimension(160,520));		
//		
		 //滚动条	
		JScrollPane jspScroll = new JScrollPane(tree,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		jspScroll.setPreferredSize(new Dimension(154,264));
		jspScroll.setMaximumSize(new Dimension(154,520));

		jspScroll.setBackground(new Color(233,241,249));
		
//		this.setPreferredSize(new Dimension(154,270));
//		this.setMaximumSize(new Dimension(154,520));
		this.add(jspScroll);	
	}
	

	/**
	 *获取树模型
	 * @return
	 */
	public MyTreeModel getModel() {
		return model;
	}
	/**
	 *设置树模型
	 * @return
	 */	
	public void setModel(MyTreeModel model) {
		this.model = model;
	}
	/**
	 *获取树
	 * @return
	 */
	public JTree getTree() {
		return tree;
	}
	/**
	 *设置树
	 * @return
	 */
	public void setTree(JTree tree) {
		this.tree = tree;
	}

	
	
	
	/**
	 * 鼠标点击树触发的事件
	 */
	public void mouseClicked(MouseEvent e) {

		TreePath tp = tree.getLeadSelectionPath();
		if (!tp.equals(null)){
			Object o = tp.getLastPathComponent();
			if (tp != null){
				if (o instanceof TCompany) {				
					chatframe.setToType("COMPANY");
					chatframe.setToUser(((TCompany) o).getName().trim());
					chatframe.getToppanel().getUsertrem().setText(((TCompany) o).getName().trim());			
					
				}
				if (o instanceof TDepartment) {
					chatframe.setToType("DEPARTMENT");
					chatframe.setToUser(((TDepartment) o).getDname().trim());
					chatframe.setToUno(((TDepartment) o).getDno().trim());
					chatframe.getToppanel().getUsertrem().setText(((TDepartment) o).getDname().trim());				
					
				}			
				if (o instanceof TUser) {
					
					if (((TUser) o).getUISONLINE().equals("0")) {
						JOptionPane.showMessageDialog(null, ((TUser) o).getUTERM().trim()+" 不在线", "提示",JOptionPane.INFORMATION_MESSAGE);
						
					} else if (((TUser) o).getUNO().equals(chatframe.getUser().getUNO().trim())) {
						JOptionPane.showMessageDialog(null, "不能和自己聊天", "提示",JOptionPane.INFORMATION_MESSAGE);					
					}else{	
						chatframe.setToType("USER");
						chatframe.setToUser(((TUser) o).getUTERM().trim());
						chatframe.setToUno(((TUser) o).getUNO().trim());
						chatframe.getToppanel().getUsertrem().setText(((TUser) o).getUTERM().trim());
						
					}					
				}			
				
			}else{
				System.out.println("error");
			}		
		}

	}

	/**
	 * 更新公司
	 * @param company
	 */
	public void updateTree(TCompany company){
		
		model.setCompany(company);
		SwingUtilities.updateComponentTreeUI(tree);		
	}
	
	/**
	 * 获取聊天对象
	 * @return
	 */
	public String getToUser() {
		return ToUser;
	}



	public void mouseEntered(MouseEvent e) {
		// TODO 自动生成方法存根
		
	}


	public void mouseExited(MouseEvent e) {
		// TODO 自动生成方法存根
		
	}


	public void mousePressed(MouseEvent e) {
		// TODO 自动生成方法存根
		
	}


	public void mouseReleased(MouseEvent e) {
		// TODO 自动生成方法存根
		
	}
	
}

⌨️ 快捷键说明

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