Code
class HighlightTreeCellRenderer extends DefaultTreeCellRenderer {
private static final Color rollOverRowColor = new Color(220, 240, 255);
private final TreeCellRenderer renderer;
public String q;
public HighlightTreeCellRenderer(TreeCellRenderer renderer) {
this.renderer = renderer;
}
public Component getTreeCellRendererComponent(JTree tree, Object value,
boolean isSelected, boolean expanded,
boolean leaf, int row, boolean hasFocus) {
JComponent c = (JComponent)renderer.getTreeCellRendererComponent(
tree, value, isSelected, expanded, leaf, row, hasFocus);
if(isSelected) {
c.setOpaque(false);
c.setForeground(getTextSelectionColor());
//c.setBackground(Color.BLUE); //getBackgroundSelectionColor());
}else{
c.setOpaque(true);
if(q!=null && !q.isEmpty() && value.toString().startsWith(q)) {
c.setForeground(getTextNonSelectionColor());
c.setBackground(rollOverRowColor);
}else{
c.setForeground(getTextNonSelectionColor());
c.setBackground(getBackgroundNonSelectionColor());
}
}
return c;
}
}
References