The horizontal position of the vertical lines is controlled by two properties of BasicTreeUI, left/rightChildIndent. So you can play with setting them based on the actual icon width, f.i. like:
// your standard icon
Icon icon = ...
BasicTreeUI ui = (BasicTreeUI) tree.getUI();
int iconWidth = icon.getIconWidth() / 2;
ui.setLeftChildIndent(iconWidth);
ui.setRightChildIndent(iconWidth + 10);
Note that you'll have to set those again whenever the LAF is changed at runtime.