5757import javax .swing .SortOrder ;
5858import javax .swing .SwingUtilities ;
5959import javax .swing .UIManager ;
60+ import javax .swing .border .Border ;
6061import javax .swing .event .ListSelectionEvent ;
6162import javax .swing .event .ListSelectionListener ;
6263import javax .swing .event .TreeExpansionEvent ;
7576import javax .swing .table .TableModel ;
7677import javax .swing .table .TableRowSorter ;
7778import javax .swing .tree .DefaultMutableTreeNode ;
79+ import javax .swing .tree .DefaultTreeCellRenderer ;
7880import javax .swing .tree .DefaultTreeModel ;
7981import javax .swing .tree .ExpandVetoException ;
8082import javax .swing .tree .TreeCellRenderer ;
@@ -1626,6 +1628,7 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
16261628 super .drawCentered (c , image [0 ].getGraphics (), icon , w / 2 , h / 2 );
16271629 }
16281630 });
1631+ fixBorder (tree );
16291632
16301633 // Expanded
16311634 tree .expandRow (0 );
@@ -1652,8 +1655,19 @@ protected void drawCentered(Component c, Graphics graphics, Icon icon,
16521655 ICONS [3 ] = new ImageIcon (image [0 ]);
16531656
16541657 }
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+
16571671 private boolean isSelected ;
16581672
16591673 void setSelected (boolean selected ) { isSelected = selected ; }
0 commit comments