iconandtiprenderer.java
来自「java swing 开发代码」· Java 代码 · 共 73 行
JAVA
73 行
// IconAndTipRenderer.java// A renderer for our tree cells that have icons and tooltips.//package jswing.ch17;import java.awt.*;import javax.swing.*;import javax.swing.tree.*;public class IconAndTipRenderer extends JLabel implements TreeCellRenderer { Color backColor = new Color(0xFF, 0xCC, 0xFF); Icon openIcon, closedIcon, leafIcon; String tipText = ""; public IconAndTipRenderer(Icon open, Icon closed, Icon leaf) { openIcon = open; closedIcon = closed; leafIcon = leaf; setBackground(backColor); setForeground(Color.black); } public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { setText(value.toString()); if (selected) { setOpaque(true); } else { setOpaque(false); } // Try to find an IconAndTipCarrier version of the current node. IconAndTipCarrier itc = null; if (value instanceof DefaultMutableTreeNode) { Object uo = ((DefaultMutableTreeNode)value).getUserObject(); if (uo instanceof IconAndTipCarrier) { itc = (IconAndTipCarrier)uo; } } else if (value instanceof IconAndTipCarrier) { itc = (IconAndTipCarrier)value; } if ((itc != null) && (itc.getIcon() != null)) { // Great! Use itc's values to customize this label setIcon(itc.getIcon()); tipText = itc.getToolTipText(); } else { // Hmmm, nothing available, so rely on the defaults. tipText = " "; if (expanded) { setIcon(openIcon); } else if (leaf) { setIcon(leafIcon); } else { setIcon(closedIcon); } } return this; } // Override the default to send back different strings for folders and leaves. public String getToolTipText() { return tipText; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?