private void layoutTabComponents() {
            if (JTattooUtilities.getJavaVersion() >= 1.6) {
                if (tabContainer == null) {
                    return;
                }
                Rectangle rect = new Rectangle();
                Point delta = new Point(-tabContainer.getX(), -tabContainer.getY());
                if (scrollableTabLayoutEnabled()) {
                    translatePointToTabPanel(0, 0, delta);
                }
                for (int i = 0; i < tabPane.getTabCount(); i++) {
                    Component tabComponent = getTabComponentAt(i);
                    if (tabComponent == null) {
                        continue;
                    }
                    getTabBounds(i, rect);
                    Dimension preferredSize = tabComponent.getPreferredSize();
                    Insets insets = getTabInsets(tabPane.getTabPlacement(), i);
                    int outerX = rect.x + insets.left + delta.x;
                    int outerY = rect.y + insets.top + delta.y;
                    int outerWidth = rect.width - insets.left - insets.right;
                    int outerHeight = rect.height - insets.top - insets.bottom;
                    //centralize component
                    int x = outerX + (outerWidth - preferredSize.width) / 2;
                    int y = outerY + (outerHeight - preferredSize.height) / 2;
                    int tabPlacement = tabPane.getTabPlacement();
                    boolean isSeleceted = i == tabPane.getSelectedIndex();
                    tabComponent.setBounds(x + getTabLabelShiftX(tabPlacement, i, isSeleceted), y + getTabLabelShiftY(tabPlacement, i, isSeleceted), preferredSize.width, preferredSize.height);
                }
            }
        }