📄 iconcellrenderer.java
字号:
package edu.sccp.chat.IconIntercalate;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.UIManager;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeCellRenderer;
/*
* 选中后效果设置
*/
public class IconCellRenderer extends JLabel implements TreeCellRenderer {
protected Color m_textSelectionColor;
protected Color m_textNonSelectionColor;
protected Color m_bkSelectionColor;
protected Color m_bkNonSelectionColor;
protected Color m_borderSelectionColor;
protected boolean m_selected;
public IconCellRenderer() {
super();
m_textSelectionColor = UIManager.getColor("Tree.selectionForeground");
m_textNonSelectionColor = UIManager.getColor("Tree.textForeground");
m_bkSelectionColor = UIManager.getColor("Tree.selectionBackground");
m_bkNonSelectionColor = UIManager.getColor("Tree.textBackground");
m_borderSelectionColor = UIManager.getColor("Tree.selectionBorderColor");
//setOpaque(false);
}
//设置图片和背景色
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean sel, boolean expanded, boolean leaf, int row,
boolean hasFocus)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
Object obj = node.getUserObject();
setText(obj.toString());
if (obj instanceof IconData) {
IconData idata = (IconData) obj;
if (expanded)
setIcon(idata.getOpenIcon());
else
setIcon(idata.getIcon());
} else
setIcon(null);
setFont(tree.getFont());
setForeground(sel ? m_textSelectionColor : m_textNonSelectionColor);
setBackground(sel ? m_bkSelectionColor : m_bkNonSelectionColor);
m_selected = sel;
return this;
}
//选择后的强调色绘制
public void paint(Graphics g) {
Color bColor = getBackground();
Icon icon = getIcon();
g.setColor(bColor);
int offset = 0;
if (icon != null && getText() != null)
offset = icon.getIconWidth() ;
g.fillRect(offset, 0, getWidth() - 1 - offset, getHeight() - 1);
if (m_selected) {
g.setColor(m_borderSelectionColor);
g.drawRect(offset, 0, getWidth() - 1 - offset, getHeight() - 1);
}
super.paint(g);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -