package com.limegroup.gnutella.gui.trees; import java.awt.Component; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JTree; import javax.swing.tree.DefaultTreeCellRenderer; /** * Custom renderer to fix Java's default spacing issues. */ public class LimeTreeCellRenderer extends DefaultTreeCellRenderer { /** * Creates a new renderer instance, with the proper LNF. */ public LimeTreeCellRenderer() { super(); setOpaque(false); setBackground(null); setBackgroundNonSelectionColor(null); setLeafIcon(null); setOpenIcon(null); setClosedIcon(null); } /** * Add left spacing to labels, matching already-provided right spacing. */ public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean focused) { JLabel jl = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus); jl.setBorder(BorderFactory.createEmptyBorder(0,4,0,0)); return jl; } }