myrenderer.java

来自「聊天工具」· Java 代码 · 共 67 行

JAVA
67
字号
package client.chat.chatpane;

import java.awt.Component;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;

import client.chat.node.DpmNode;
import client.chat.node.RootNode;
import client.chat.node.UserNode;

/**
 * 显示树中的条目
 * @author 洪景泉
 *
 */
public class MyRenderer extends DefaultTreeCellRenderer {

	private static final long serialVersionUID = -149424067590686117L;

	/**
	 * 用于获得树的Renderer.
	 */
	public Component getTreeCellRendererComponent(JTree tree, Object value,
			boolean sel, boolean expanded, boolean leaf, int row,
			boolean hasFocus) {

		super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf,
				row, hasFocus);

		DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode) value;

		Object object = dmtn.getUserObject();

		if (object instanceof UserNode) {
			UserNode userData = (UserNode) object;

			String sicon = userData.getUserIcon();
			String sonline = userData.getUserOnline();

			if (sonline.equals("1")) {
				sicon = "./image/newface/" + sicon + "_m.gif";
			} else {
				sicon = "./image/newface/gray/" + sicon + "_m_gray.gif";
			}
			this.setIcon(new ImageIcon(sicon));
			this.setText(userData.getUserName());
			this.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));

		}
		else if(object instanceof DpmNode){
			DpmNode dpmData=(DpmNode)object;
			this.setText(dpmData.getDpmName());
		}
		else if(object instanceof RootNode){
			RootNode rootData=(RootNode)object;
			this.setText(rootData.getSname());
		}

		return this;
	}

}

⌨️ 快捷键说明

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