57
57
import javax .swing .SortOrder ;
58
58
import javax .swing .SwingUtilities ;
59
59
import javax .swing .UIManager ;
60
+ import javax .swing .border .Border ;
60
61
import javax .swing .event .ListSelectionEvent ;
61
62
import javax .swing .event .ListSelectionListener ;
62
63
import javax .swing .event .TreeExpansionEvent ;
75
76
import javax .swing .table .TableModel ;
76
77
import javax .swing .table .TableRowSorter ;
77
78
import javax .swing .tree .DefaultMutableTreeNode ;
79
+ import javax .swing .tree .DefaultTreeCellRenderer ;
78
80
import javax .swing .tree .DefaultTreeModel ;
79
81
import javax .swing .tree .ExpandVetoException ;
80
82
import javax .swing .tree .TreeCellRenderer ;
@@ -1626,6 +1628,7 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
1626
1628
super .drawCentered (c , image [0 ].getGraphics (), icon , w / 2 , h / 2 );
1627
1629
}
1628
1630
});
1631
+ fixBorder (tree );
1629
1632
1630
1633
// Expanded
1631
1634
tree .expandRow (0 );
@@ -1652,8 +1655,19 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
1652
1655
ICONS [3 ] = new ImageIcon (image [0 ]);
1653
1656
1654
1657
}
1655
-
1656
-
1658
+
1659
+ private static void fixBorder (JTree tree ) {
1660
+ TreeCellRenderer cellRenderer = tree .getCellRenderer ();
1661
+ if (cellRenderer instanceof DefaultTreeCellRenderer ) {
1662
+ DefaultTreeCellRenderer defaultRenderer = (DefaultTreeCellRenderer ) cellRenderer ;
1663
+ Border treeBorder = defaultRenderer .getBorder ();
1664
+ Insets i = treeBorder .getBorderInsets (defaultRenderer );
1665
+ if (i .bottom + i .left + i .right + i .top == 0 ) {
1666
+ defaultRenderer .setBorder (BorderFactory .createEmptyBorder (1 , 1 , 1 , 1 ));
1667
+ }
1668
+ }
1669
+ }
1670
+
1657
1671
private boolean isSelected ;
1658
1672
1659
1673
void setSelected (boolean selected ) { isSelected = selected ; }
0 commit comments