📄 userlistpanel.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 + -